Ian Perera
Ian Perera

Reputation: 241

How to set headers for POST with flutter and Dio

this is my code below, i'm stuck please help.

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);
    }
}

it was throwing an error of data null.

Upvotes: 3

Views: 10535

Answers (2)

Ramananda Sarkar
Ramananda Sarkar

Reputation: 259

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),
        );

Upvotes: 0

Ian Perera
Ian Perera

Reputation: 241

I was able to fix the issues.

Add optional parameter options for dio.post method and define headers with Options class:

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);
  }
}

Upvotes: 16

Related Questions