我最近在我的应用中升级了flutter版本。但当我想要调试应用程序时,它会显示以下错误:
连接服务协议出错:HttpException: Connection closed before full header was received, URI = http://127.0.0.1:50795/ws
是否有其他人在升级flutter版本后遇到相同的问题?如果有任何解决方法,请分享。
我最近在我的应用中升级了flutter版本。但当我想要调试应用程序时,它会显示以下错误:
连接服务协议出错:HttpException: Connection closed before full header was received, URI = http://127.0.0.1:50795/ws
是否有其他人在升级flutter版本后遇到相同的问题?如果有任何解决方法,请分享。
现在此问题已在 Github 上开放:https://github.com/flutter/flutter/issues/32587
暂时,您可以通过切换到物理设备而不是模拟器来解决此问题:如何使用 Android Studio 在真实设备上测试 Android 应用程序?
Github 上找到了决定(向上链接)
我现在有一个临时解决方案,可以暂时使用。上面的异常在我将模拟器运行为 Pixel 3 Android 9.+ Target (Q API) 时抛出。我创建了第二个模拟设备,一个 Pixel 2 Android 9.0 Target (28 API),并且这个目标可以正常工作。
我还注意到 Pixel 2 目标占用 8.5GB 的磁盘空间,而 Pixel 3 目标仅占用 1.4GB。这让我想知道 Pixel 3 目标是否缺少一些重要的东西。
主要问题出在Android Q
上。
你可以将你的安卓版本从Android Q
降级到Android Pie
,这最终会解决该问题。
这最终将帮助解决该问题。
除非Flutter开发团队解决此问题,否则没有解决方案。
即使连接物理iOS设备,在我的一台机器上(Mac OS Mojave)也会出现这个问题。当然,使用模拟的Android设备(无论哪种设备)也会出现这个问题。
我在另一台计算机(同样是MacOS Mojave)中也遇到了这个问题,该计算机配备一台物理的Android设备(具有非常旧的Android版本:5.1)。
flutter clean
在我的情况下完全不能解决它。
首先关闭您的WiFi/蓝牙。
然后运行以下命令:
flutter clean
然后退出或重新启动模拟器。
flutter clean
,然后更改了模拟器设备,并重新开启了Wifi,问题得到了解决。 - ArifMustafaflutter clean
,然后是 flutter pub get
,最后是 flutter run
。 - Lucas De Lavra PintoOptionBuilder()
.setTransports(['websocket'])
.setPath('/messanging')
// for Flutter or Dart VM
//.setPath("/messanging")
// .setExtraHeaders({"Authorization":"Bearer
${datasource.user?.payload?.access_token}"}) // optional
.build()
当我使用下面的map方法时,它起作用了。
socket = IO.io("http://10.18.5.212:3000/messanging", <String, dynamic>{
"transports": ["websocket"],
"Authorization":
"Bearer eyJhbGciOiJIUzI1N......"
}
我正在使用Dio遇到了同样的问题,所以我创建了这个拦截器来解决此问题,该拦截器也可以使用http拦截器实现。
我通过将 request.persistentConnection = false;(默认为 true)来解决了这个问题。
写这篇文章是希望如果有人遇到同样的问题,可以参考一下。
在使用多部分发送图像的POST请求中,我遇到了相同的问题。通过以下方式解决:
contentType: MediaType('image', 'jpeg') in the http.MultipartFile
函数
e.g
request.files.add(
http.MultipartFile(
'image',
stream,
length,
filename: basename(_image1.path),
contentType: MediaType('image', 'jpeg'),
),
);
'image'是参数名称。
不要忘记导入'package:http_parser/http_parser.dart';以获取MediaType。 您可以使用的其他MediaType包括
"image/png"
"image/jpg"
"image/jpeg"
同时我也在Header中添加了"Content-Type": "multipart/form-data"
flutter clean
起了作用。 - Stack Underflow