簡體   English   中英

如何在顫振中從服務器獲取令牌?

[英]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));

https://pub.dev/packages/dio#sending-formdata

您的錯誤消息表明 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM