我的Flutter代码如下:
var url = "http://localhost:49912/api/Account/Register";
http
.post(url,
headers: {"Content-Type": "application/json"},
body: js)
.then((response) {
print("Response status: ${response.statusCode}");
print("Response body: ${response.body}");
});
http响应为: [ERROR:flutter / lib / ui / ui_dart_state.cc(148)]未处理的异常:SocketException:操作系统错误:连接被拒绝,errno = 111,地址= localhost,端口= 37316
现在我知道我的服务器代码可以在仿真器之外运行,并且需要进行一些挖掘,然后尝试从仿真器中使用Chrome,然后尝试导航至127.0.0.1并得到相同的错误。经过一番挖掘后,我发现我应该使用10.0.2.2(主机回送接口的特殊别名(即开发计算机上的127.0.0.1) 所以我在Chrome模拟器中输入10.0.2.2,然后查看IISexpress服务器。感觉很好,但随后我将uri更改为10.0.2.2:49912 因为我的应用程序正在侦听端口49912并收到400错误请求-无效的主机名
痛苦
答案 0 :(得分:0)
最终发现,尝试使用Postman的127.0.0.1调用我的服务,并得到了同样的错误请求。事实证明IIS Express正在localhost上侦听,因此需要通过编辑
来说服侦听127.0.0.1。
解决方案.vs文件夹中的applicationhost.config文件。添加以下行<binding protocol="http" bindingInformation="*:49912:127.0.0.1" />
答案 1 :(得分:0)
尝试<button>
代替<form>
本地主机必须替换为您的系统IP地址
要获取系统ip,只需转到cmd并键入ipconfig