【问题标题】:How to set headers for POST with flutter and Dio如何使用颤振和 Dio 为 POST 设置标题
【发布时间】:2020-01-15 17:03:21
【问题描述】:

这是我下面的代码,我卡住了,请帮忙。

void getProducts() async {
    String htoken = Utils.prefs.getString("token");
    print(htoken);
    try {
      var dio = Dio(BaseOptions(headers: {"appusertoken": "$htoken"}));
  //dio.options.headers["appusertoken"] = "$htoken";

      Response response = await dio.post(
        'APIURL',
      );
      print("data coming");
      print(response.data);
    } on DioError catch (e) {
      print(e.response.data);
      print(e.response.headers);
      print(e.response.request);
    }
}

它抛出了一个数据为空的错误。

【问题讨论】:

  • 添加信息有什么问题
  • 感谢您的回复,我想通了。我将在下面发布我的发现。

标签: flutter dart


【解决方案1】:

我能够解决这些问题。

dio.post 方法添加可选参数options 并使用Options 类定义标头:

void getProducts() async {
  String htoken = Utils.prefs.getString("token");
  try {
    Dio dio = Dio();
    Response response = await dio.post("http://URL",
      data: {},
      options: Options(
        headers: {"appusertoken": "$htoken"},
      ));

    print("data coming");
    print(response);
  } on DioError catch (e) {
    print(e.response.data);
    print(e.response.headers);
    print(e.response.request);
  }
}

【讨论】:

  • 它在给定代码中的“选项”处显示错误。 Dio 有具体的版本吗?
【解决方案2】:
For example :  
   Dio _dio = new Dio();
        _dio.options.contentType = Headers.formUrlEncodedContentType;
        
        _dio.options.headers['Authorization'] = 'bearer $authToken';
    or use :
        final Map<String, dynamic> header = {'Authorization': 'bearer $authToken'};

        enter code here
        final responseData = await _dio.get(
          Apis.account_profit,
          options: RequestOptions(
              method: 'GET', headers: header, baseUrl: Apis.apiBaseUrl),
        );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-24
    • 2021-04-12
    • 2021-03-03
    • 2020-12-24
    • 1970-01-01
    • 2021-06-10
    • 2022-06-28
    • 1970-01-01
    相关资源
    最近更新 更多