颤抖的HTTP发布失败,无法在Windows 10上从android模拟器阻止连接

时间:2019-05-16 22:40:19

标签: windows flutter android-emulator

我的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错误请求-无效的主机名

痛苦

2 个答案:

答案 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