Http-POST-request mit json content-type-in dart:io
Wie zum ausführen von HTTP-POST-Konsole mit dem dart-Anwendung (mit dart:io
oder kann package:http
Bibliothek. Sowas mache ich:
import 'package:http/http.dart' as http;
import 'dart:io';
http.post(
url,
headers: {HttpHeaders.CONTENT_TYPE: "application/json"},
body: {"foo": "bar"})
.then((response) {
print("Response status: ${response.statusCode}");
print("Response body: ${response.body}");
}).catchError((err) {
print(err);
});
aber bekomme die folgende Fehlermeldung:
Bad state: Cannot set the body fields of a Request with content-type "application/json".
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom
http.dart
:So generieren des JSON Körper selbst (mit
JSON.encode
aus dart:convert).The content-type of the request will be set [...] this cannot be overridden
Dieser Satz war im Zusammenhang mit einerMap
Körper, nicht einString
ein.Dies ist ein vollständiges Beispiel. Verwenden Sie
json.encode(...)
zu konvertieren, die Körper Ihrer Anfrage nach JSON.Generell ist es ratsam, ein
Future
für Ihre Anfragen so können Sie versuchen, so etwas wieDer einzige Unterschied in der syntax wird die
async
undawait
keywords.