[英]Trouble with POST using Dio in flutter
我正在嘗試使用Dio在 flutter 中復制以下 curl 命令。
$ curl -X POST -d '{"k":"cc","v":"4i8pwFwPkImsnLmIj54BYJA4Z94j0OLyl7vwKecELzYGKbM5Vra6H9T0DI"}' http://192.168.0.1/set
它用於設置處於 HotSpot 模式的 IOT 設備,因此 POST 到 192.168.0.1。
這是我到目前為止嘗試過的代碼。
Future<Response> doClaimCodePost(Alice alice) async {
Dio dio = new Dio();
var data = {
"k": "cc",
"v": _claimCode,
};
//FormData formData = FormData.fromMap(data);
dynamic jsonData = json.encode(data);
dio.interceptors.add(alice.getDioInterceptor());
return await dio.post("http://192.168.0.1/set",
data: jsonData,
options: Options(contentType: Headers.formUrlEncodedContentType));
}
我將數據轉換為 JSON 因為這是 curl 命令中的主體。 我將內容類型設置為 Url 編碼形式,因為這是 curl POST 命令所做的。
我沒有構建這個 API,我只是不得不使用它......
我已經測試了 curl 命令,它可以工作。
我熟悉將 curl 命令神奇地轉換為 Dart 代碼的網站,但我想使用 Dio。
問:如何使用 Dio 復制 curl 命令?
如果你想發送 json,為什么你使用formUrlEncodedContentType
作為類型?
試試下面的代碼:
final _headers = {
HttpHeaders.contentTypeHeader: "application/json"
}
return await dio.post("http://192.168.0.1/set",
data: data,
options: Options(headers: _headers));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.