我正在嘗試將本地主機資料庫連接到顫振。我使用 asp.net core Web API 將資料獲取到本地主機 web。這就是資訊的顯示方式。
本地主機中的資訊以及 url
我嘗試參考如何從實時服務器https://docs.flutter.dev/cookbook/networking/fetch-data#1-add-the-http-package呼叫資料,這很有效。但是,當我嘗試更改為本地時,它最終會因連接超時而停止作業。作為參考,代碼如下所示:
import 'dart:async';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
Future<Employee> fetchEmployee() async {
final response = await http
.get(Uri.parse('https://192.168.156.1:7040/api/Employees/GetAllEmployees/2'));
if (response.statusCode == 200) {
// If the server did return a 200 OK response,
// then parse the JSON.
return Employee.fromJson(jsonDecode(response.body));
} else {
// If the server did not return a 200 OK response,
// then throw an exception.
throw Exception('Failed to load album');
}
}
class Employee {
final int Id;
final String l_name;
final String f_name;
const Employee({
required this.Id,
required this.l_name,
required this.f_name,
});
factory Employee.fromJson(Map<String, dynamic> json) {
return Employee(
Id: json['Id'],
l_name: json['l_name'],
f_name: json['f_name'],
);
}
}
void main() => runApp(const MyApp());
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
late Future<Employee> futureAlbum;
@override
void initState() {
super.initState();
futureAlbum = fetchEmployee();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Fetch Data Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: const Text('Fetch Data Example'),
),
body: Center(
child: FutureBuilder<Employee>(
future: futureAlbum,
builder: (context, snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data!.f_name);
} else if (snapshot.hasError) {
return Text('${snapshot.error}');
}
// By default, show a loading spinner.
return const CircularProgressIndicator();
},
),
),
),
);
}
}
如果我嘗試將 uri 作為 http://localhost:7040/ 傳遞,我在某處讀到它不會作業,而且它拒絕連接,所以我使用筆記本電腦的 IP 地址。我還確保模擬器的 IP 地址與我插入的 IP 地址匹配。有誰知道為什么會發生這種情況以及任何解決它的建議?
uj5u.com熱心網友回復:
如果您的服務器在 localhost 上運行并且您正在 Android 模擬器上測驗您的應用程式,則替換...
http://localhost:3000
和
http://10.0.2.2:3000
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/511756.html
上一篇:ASP.NETCoreWebAPI-System.InvalidOperationException:LINQ運算式'DbSet<Mandate>()
