微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter - 未处理的异常:HttpException:意外的响应没有请求的未经请求的响应 错误

如何解决Flutter - 未处理的异常:HttpException:意外的响应没有请求的未经请求的响应 错误

我在发出 HTTP 发布请求以便通过 PHP 作为 API 将数据发送到我的 sql 时遇到问题。 httpdio 都抛出相同的错误

我有一个 PHP 文件 register_user.PHP 文件,它连接 db 并执行插入查询。我使用 url 解析测试了这个文件,它工作正常,url 是

http://pro-connect.infinityfreeapp.com/register_user.php

函数 userRegistration() 需要使用一些数据对上述链接进行 post 请求。

Future userRegistration() async {
    String name = nameController.text;
    String email = emailController.text;
    String password = passwordController.text;

    var url = Uri.parse('http://pro-connect.infinityfreeapp.com/register_user.PHP');
    var data = {'name': name,'email': email,'password': password};

    var response = await http.post(url,body: data);
    var message = '${response.body}';
}

更新AndroidManifest.xml

<application
  android:label="reg_login_demo"
  android:icon="@mipmap/ic_launcher"
  android:usesCleartextTraffic="true"
>

更新:没有第三方包

Future userRegistration() async {
    String name = nameController.text;
    String email = emailController.text;
    String password = passwordController.text;

    var url = Uri.parse('http://pro-connect.infinityfreeapp.com/register_user.PHP');
    var data = {'name': name,'password': password};

    final client = HttpClient();
    final request = await client.postUrl(url);
    request.headers.set(HttpHeaders.contentTypeHeader,"application/json;charset=UTF-8");
    request.write(data);

    final response = await request.close();

    response.transform(utf8.decoder).listen((contents) {
      print(contents);
    });
}

错误

E/Flutter (14533): [ERROR:Flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: HttpException: Unexpected response (unsolicited response without request).
E/Flutter (14533): #0      new _HttpClientConnection.<anonymous closure> (dart:_http/http_impl.dart:1824:9)
E/Flutter (14533): #1      _rootRunUnary (dart:async/zone.dart:1362:47)
E/Flutter (14533): #2      _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/Flutter (14533): #3      _CustomZone.runUnaryguarded (dart:async/zone.dart:1170:7)
E/Flutter (14533): #4      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/Flutter (14533): #5      _DelayedData.perform (dart:async/stream_impl.dart:591:14)
E/Flutter (14533): #6      _StreamImplEvents.handleNext (dart:async/stream_impl.dart:706:11)
E/Flutter (14533): #7      _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:663:7)
E/Flutter (14533): #8      _rootRun (dart:async/zone.dart:1346:47)
E/Flutter (14533): #9      _CustomZone.run (dart:async/zone.dart:1258:19)
E/Flutter (14533): #10     _CustomZone.runGuarded (dart:async/zone.dart:1162:7)
E/Flutter (14533): #11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1202:23)
E/Flutter (14533): #12     _rootRun (dart:async/zone.dart:1354:13)
E/Flutter (14533): #13     _CustomZone.run (dart:async/zone.dart:1258:19)
E/Flutter (14533): #14     _CustomZone.runGuarded (dart:async/zone.dart:1162:7)
E/Flutter (14533): #15     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1202:23)
E/Flutter (14533): #16     _microtaskLoop (dart:async/schedule_microtask.dart:40:21)
E/Flutter (14533): #17     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
如果我尝试打印 var message
I/Flutter (14533): <html>
<body>
<script type="text/javascript" src="/aes.js" ></script>
<script>function toNumbers(d){
var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});
return e
}
function toHex(){
for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);
return e.toLowerCase()
}
var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("6a1d752b2e48122d17f6fadb07bd279c");
document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; 
expires=Thu,31-Dec-37 23:55:55 GMT; path=/"; 
location.href="http://pro-connect.infinityfreeapp.com/register_user.PHP?i=1";
</script>
<noscript>This site requires Javascript to work,please enable Javascript in your browser or use a browser with Javascript support
</noscript>
</body>
</html>

最后,我在自己的移动设备上运行了这个应用程序。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。