Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何修复HttpException:在收到完整标头之前连接已关闭_Flutter_Http_Https_Http Headers_Connection - Fatal编程技术网

Flutter 如何修复HttpException:在收到完整标头之前连接已关闭

Flutter 如何修复HttpException:在收到完整标头之前连接已关闭,flutter,http,https,http-headers,connection,Flutter,Http,Https,Http Headers,Connection,我最近在我的应用程序中升级了我的颤振版本。但当我想调试应用程序时,它会显示以下错误 连接到服务协议时出错:HttpException:在收到完整标头之前连接已关闭,URI= 升级颤振版本后,是否有人面临同样的问题?如果有任何解决方法,请与我们分享。现在这个问题已在github上打开 暂时可以通过切换到物理设备而不是模拟器来解决此问题 在github上找到决策(向上链接) 我有一份临时工作,现在可以用。当我将emulator作为Pixel 3 Android 9.+目标(QAPI)运行时,会引

我最近在我的应用程序中升级了我的颤振版本。但当我想调试应用程序时,它会显示以下错误

连接到服务协议时出错:HttpException:在收到完整标头之前连接已关闭,URI=


升级颤振版本后,是否有人面临同样的问题?如果有任何解决方法,请与我们分享。

现在这个问题已在github上打开

暂时可以通过切换到物理设备而不是模拟器来解决此问题

在github上找到决策(向上链接)

我有一份临时工作,现在可以用。当我将emulator作为Pixel 3 Android 9.+目标(QAPI)运行时,会引发上述异常。我制作了第二个模拟设备,Pixel2Android9.0目标(28API),这个目标运行良好

我还注意到,像素2目标占用磁盘上的8.5GB,而像素3目标仅占用1.4GB。这让我怀疑像素3目标是否缺少一些重要的东西


这个问题主要与安卓Q有关

您可以将您的android版本从
android Q
降级为
android Pie


这最终解决了问题。

首先关闭WiFi/Bluetooth

并运行以下命令:

flutter clean

然后退出或重新启动仿真器。

除非颤振人员修复,否则没有解决方案

即使在连接物理iOS设备时,我也在一台机器(Mac OS Mojave)上使用它。当然,模拟的Android设备也会出现这种情况(不管是哪一种)

我在另一台装有物理安卓设备(安卓版本非常旧:5.1)的计算机(MacOS Mojave)上也遇到了这个问题


flatter clean
在我的情况下根本无法解决此问题。

如果您在IOS构建中遇到此问题,请遵循以下步骤

转到运行程序->编辑模式->运行->将生成配置更改为 调试


如果您处于发布模式,在android studio上运行时,您将面临此问题。

我也面临同样的问题。实际上,问题出在本机代码中

如果您从android Studio中打开一个
应用程序/android项目
并运行它,您可以跟踪android的问题,对于iOS->open
iOS
项目在XCode中也是如此 因此,在我修复它之后,应用程序将按预期运行


我希望这会有所帮助,因为我找到了解决方案。对我来说,它在物理设备上有效,但在模拟器上无效。简单的解决方法是使用x86环境的仿真器,而不是x86_64仿真器。

我通过设置request.persistentConnection=false解决了这个问题;(默认值为true)

写这篇文章以防有人有同样的问题…

就像维塔利说的那样

在通过Xcode构建iOS时,我也很难强迫自己犯下这个错误,我想Android和Android studio也会犯同样的错误

对于iOS,执行
flatter构建iOS——发布
,然后在Xcode中打开/运行项目

对于Android do
flatterbuildapk--release
,然后在Android Studio中打开/运行该项目


这似乎是一个问题,当调试通过颤振。。。如果发现其他问题,我将更新此答案,但使用此方法它似乎稳定

我找到了如何限制NetworkImage的底层HttpClient上的连接

我全局覆盖了HttpClient:(ref:)


Ref:

当我将flifter与http包一起使用时,我遇到了相同的错误

import 'package:http/http.dart' as http;
...
http.Response response =  http.get('url')
这很好。但是当我去获取
响应.statusCode
时,连接时出现了
错误
错误


我发现我在我的电脑上使用了SSR/v2Ray。我通过在Android Emulator扩展控制面板上设置代理来修复它。

在我的情况下(错误“HttpException:在收到完整头之前连接已关闭”),调用的是使用Microsoft Internet Information Services作为后端的https地址,在IIS网站的SSL设置中,我错误地设置了“客户端证书:接受”而不是“客户端证书:忽略”,设置“忽略”解决了问题。

切换到físicas设备对我不起作用。我在iOS和Android物理设备以及iPhone emulator上遇到了同样的问题。在物理设备上遇到同样的问题,有解决方案吗?尝试使用另一个模拟器-例如创建Pixel 3 Android 9并尝试在那里执行应用程序。同时升级Flutter,如果它没有帮助,试着运行并检查一切是否正常Flutter博士-vbut为什么在物理android设备上面临问题:三星?@awaik将此作为一个单独的问题问了出来,这对我来说不起作用:我有一个物理android设备在工作,但没有模拟器,也没有物理iOS设备,而处于调试模式的Android设备似乎在关闭或不关闭WiFi/Bluetooth的情况下都能正常工作。@nbloqs关闭WiFi只会确保您打开的连接将被关闭。谢谢,但我的意思是,与WiFi/Bluetooth状态无关,Flitter clean根本无法解决此问题。这看起来确实是一个永久性的问题,与开放连接无关。我在Visual Studio代码中遇到了这个问题,所以我关闭了Wifi,转到终端并flatter clean,然后更改模拟器设备并再次打开Wifi,问题已解决。iOS如何?抱歉@AniruddhaShevle我没有iOS,所以不清楚。没有解决方案,如果iOS如何?您在哪里设置的?我扩展了IOClient并完成了:类PersistentIoClient扩展了http.IOClient{static final http.Client\u Client=PersistentIoClient(HttpClient()…connectionTimeout=const Duration(秒:15),;静态http.Client get Client=>\u Client;静态sync.Lock=sync.Lock(可重入:true);persistenticoclient([HttpClient-inner]):super(inner);@重写未来发送(http.BaseRequest-request)异步{request.per
I was getting the same issue in POST request while sending the Images as multipart
Resolved by using 
contentType: MediaType('image', 'jpeg') in the http.MultipartFile function 
e.g 
    request.files.add(
          http.MultipartFile(
            'image',
            stream,
            length,
            filename: basename(_image1.path),
            contentType: MediaType('image', 'jpeg'),
          ),
        );
where 'image' is the paramter name.
 
Don't forget to import 'package:http_parser/http_parser.dart';
for MediaType.
 
Other Mediatype which you can use are 
"image/png"
"image/jpg" 
"image/jpeg"
And I am sending this too in Header "Content-Type": "multipart/form-data"
I was getting the same issue in POST request while sending the Images as multipart
Resolved by using 
contentType: MediaType('image', 'jpeg') in the http.MultipartFile function 
e.g 
    request.files.add(
          http.MultipartFile(
            'image',
            stream,
            length,
            filename: basename(_image1.path),
            contentType: MediaType('image', 'jpeg'),
          ),
        );
where 'image' is the paramter name.
 
Don't forget to import 'package:http_parser/http_parser.dart';
for MediaType.
 
Other Mediatype which you can use are 
"image/png"
"image/jpg" 
"image/jpeg"
And I am sending this too in Header "Content-Type": "multipart/form-data"