[英]How to get token from server in flutter?
我想向服務器發送一些數據,但出現此錯誤:
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 在 Postman 中也可以正常工作,但是在 flutter 中不起作用,請幫助我。
嘗試使用FormData.fromMap
。 例如。
var data = {
'username': "admin",
'password': "mahdi@raham786",
};
var response = await dio.post(url, data:FormData.fromMap(data));
您的錯誤消息表明 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);
}
我解決了我的問題,發生此錯誤是因為我的 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,問題得到解決。 感謝我的朋友們的回復。 (-;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.