我正在尝试拨打电话,如下面的代码所示。
Map<String, String> header = {"Content-Type": "application/json"};
Map<String, String> body = {
"client_id": "xxxx",
"client_secret": "XXXX",
"password": "password",
"username": "username",
};
Future<Post> callForFirstToken() async {
final response = await http.post(url, headers: header, body: body);
return response.statusCode == 200
? Post.fromJson(json.decode(response.body))
: throw Exception('Failed to load ...');}
但是,我遇到了这个错误:
Error connecting to the service protocol: HttpException: Connection closed before full header was received, uri = http://127.0.0.1:60556/sK_cPlYMcGQ=/ws
答案 0 :(得分:0)
我不太确定,但就我而言,我以前已经看过。此错误可能与您发布的实际网络呼叫无关。您可以看到127.0.0.1
的IP地址是调试期间正在使用的本地计算机之一。
这意味着无法使用该设备进行调试。您可能需要重新启动并重新连接IDE和/或电话,并打开任何VPN程序。对我来说这很有效。
您可能还希望将response.body
设置为Text
小部件,以检查实际的网络呼叫是否成功。
答案 1 :(得分:0)
我认为我遇到了同样的问题,但是我不确定如何解决。
我认为是将其添加到标题中:<div class="outer">
<div>text1</div>
<div>text2</div>
<div>text3</div>
<div>text4</div>
<div>text5</div>
<div>text6</div>
<div>text7</div>
<div>text8</div>
<div>text9</div>
<div>text10</div>
</div>
答案 2 :(得分:0)
我已将标题替换为下面的显示和工作方式
{"HttpHeaders.contentTypeHeader": "application/json"}
答案 3 :(得分:0)
这可能是https://github.com/omnigroup/Apache/blob/master/httpd/modules/filters/mod_ext_filter.c。
尝试使用flutter run --enable-software-rendering
而非仅使用run
。
答案 4 :(得分:0)
问题是告诉您连接已关闭,因为未收到来自服务器的适当响应。 这意味着在服务器代码中的某处,由于异常而被卡住,或者由于繁重的工作而被卡住,等等。您应该将服务器代码封装在try-catch中,并查看为什么卡住了代码。我的猜测是,您忘记了发布请求后将数据发送回客户端,而您的客户端仍在等待该数据。