我想向服务器发送一些数据,但出现此错误:
E/flutter (18058): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: DioError [DioErrorType.RESPONSE]: Http status error [403]
E/flutter (18058): #0 DioMixin._dispatchRequest (package:dio/src/dio.dart:966:7)
这是我的代码:
RaisedButton(
onPressed: () async {
final url = 'https://www.badam.af/wp-json/jwt-auth/v1/token';
Dio dio = new Dio();
final response = await dio.post(
url,
data: {
'username': "admin",
'password': "mahdi@raham786",
},
);
print("Mahdi: " + response.data);
},
child: Text("button"),
),
我将这些权限添加到清单文件中:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我的URL在邮递员中也可以正常工作,但在混乱中不起作用,请帮帮我。
答案 0 :(得分:3)
尝试使用FormData.fromMap
。例如。
var data = {
'username': "admin",
'password': "mahdi@raham786",
};
var response = await dio.post(url, data:FormData.fromMap(data));
答案 1 :(得分:2)
您的错误消息表明API调用返回Http status error [403]
任何HTTP调用都需要处理成功的响应和失败。
对于您的代码,您可以简单地通过try-catch
进行处理,并处理异常/错误。此外,您的API似乎期望表单数据不是json对象。
请参见下面的代码段,它应该对您的需求有所帮助。
var response;
try {
FormData formData = new FormData.fromMap({
"username": "admin",
"password": "mahdi@raham786",
});
response = await dio.post(
url,
data: formData,
);
// FIXME: use the response as you need
} catch (e) {
// FIXME: handle error cases here
print(e);
}
答案 2 :(得分:0)
我已解决问题,因为我的IP被阻止,因此发生了此错误
E/flutter (18058): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: DioError [DioErrorType.RESPONSE]: Http status error [403]
E/flutter (18058): #0 DioMixin._dispatchRequest (package:dio/src/dio.dart:966:7)
我在手机上安装了VPN,问题已解决。 感谢我的朋友们的回复。 (-;