Erreur de lancement de la demande de publication lors de la définition de la mappe d'en-tête.
Voici mon code
Future<GenericResponse> makePostCall(
GenericRequest genericRequest) {String URL = "$BASE_URL/api/";
Map data = {
"name": "name",
"email": "email",
"mobile": "mobile",
"transportationRequired": false,
"userId": 5,
};
Map userHeader = {"Content-type": "application/json", "Accept": "application/json"};
return _netUtil.post(URL, body: data, headers:userHeader).then((dynamic res) {
print(res);
if (res["code"] != 200) throw new Exception(res["message"][0]);
return GenericResponse.fromJson(res);
});
}
mais je reçois cette exception avec des en-têtes.
`══╡ EXCEPTION CAUGHT BY GESTURE ╞═ flutter: L'assertion suivante a été émise lors de la manipulation d'un geste: flutter: type '_InternalLinkedHashMap' n'est pas un sous-type de type 'Map' flutter: flutter: Soit l'assertion indique une erreur dans le framework lui-même, ou nous devrions fournir un flottement substantiel: plus d'informations dans ce message d'erreur pour vous aider à déterminer et à résoudre la cause sous-jacente. flutter: Dans les deux cas, veuillez signaler cette assertion en signalant un bug sur GitHub: flutter: https://github.com/flutter/flutter/issues/new?template=BUG.md flutter: flutter : Lorsque l'exception a été levée, il s'agissait de la pile: flutter: # 0 NetworkUtil.post1 (package: saranam/network/network_util.Dart: 50: 41) flutter: # 1 RestDatasource.bookPandit (package: saranam/network/rest_data_source. Fléchette: 204: 21)
Quelqu'un face à ce problème? Je n'ai trouvé aucun indice avec le journal ci-dessus.
Essayer
Map<String, String> requestHeaders = {
'Content-type': 'application/json',
'Accept': 'application/json',
'Authorization': '<Your token>'
};
Je l'ai fait de cette façon en passant une clé privée dans les en-têtes. Cela répondra également à @Jaward:
class URLS {
static const String BASE_URL = 'https://location.to.your/api';
static const String USERNAME = 'myusername';
static const String PASSWORD = 'mypassword';
}
Dans le même fichier .Dart:
class ApiService {
Future<UserInfo> getUserInfo() async {
var headers = {
'pk': 'here_a_private_key',
'authorization': 'Basic ' +
base64Encode(utf8.encode('${URLS.USERNAME}:${URLS.PASSWORD}')),
"Accept": "application/json"
};
final response = await http.get('${URLS.BASE_URL}/UserInfo/v1/GetUserInfo',
headers: headers);
if (response.statusCode == 200) {
final jsonResponse = json.decode(response.body);
return new UserInfo.fromJson(jsonResponse);
} else {
throw Exception('Failed to load data!');
}
}
}