繁体   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