问题描述
我在发出 HTTP 发布请求以便通过 PHP 作为 API 将数据发送到我的 sql 时遇到问题。
http
和 dio
都抛出相同的错误。
我有一个 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 (将#修改为@)