Désolé si cette question est si basique, mais je suis nouveau dans le flottement et je n'ai pas réussi récemment à trouver un bon moyen de définir des en-têtes par défaut dans la requête HTTP. Je peux étendre la classe ou envelopper une fonction, mais ne devrait-il pas y avoir un moyen simple qui est intégré mais je ne pouvais pas le trouver dans la documentation.
cette façon simple et facile a fonctionné pour moi
var _dio = Dio();
_dio.options.headers= {"Authorization" : token};
En développant simplement l'idée @Radek Manasek d'un Client
personnalisé, je remplace toutes les méthodes afin que vous n'ayez pas à les réécrire.
import 'Dart:convert';
import 'package:http/http.Dart' as http;
import 'package:http/http.Dart';
class MyClient extends http.BaseClient {
final Map<String, String> _defaultHeaders;
http.Client _httpClient = http.Client();
MyClient(this._defaultHeaders);
@override
Future<http.StreamedResponse> send(http.BaseRequest request) {
return _httpClient.send(request);
}
@override
Future<Response> get(url, {Map<String, String> headers}) {
return _httpClient.get(url, headers: _mergedHeaders(headers));
}
@override
Future<Response> post(url, {Map<String, String> headers, dynamic body, Encoding encoding}) {
return _httpClient.post(url, headers: _mergedHeaders(headers), body: body, encoding: encoding);
}
@override
Future<Response> patch(url, {Map<String, String> headers, dynamic body, Encoding encoding}) {
return _httpClient.patch(url, headers: _mergedHeaders(headers), body: body, encoding: encoding);
}
@override
Future<Response> put(url, {Map<String, String> headers, dynamic body, Encoding encoding}) {
return _httpClient.put(url, headers: _mergedHeaders(headers), body: body, encoding: encoding);
}
@override
Future<Response> head(url, {Map<String, String> headers}) {
return _httpClient.head(url, headers: _mergedHeaders(headers));
}
@override
Future<Response> delete(url, {Map<String, String> headers}) {
return _httpClient.delete(url, headers: _mergedHeaders(headers));
}
Map<String, String> _mergedHeaders(Map<String, String> headers) =>
{...?_defaultHeaders, ...?headers};
}