簡體   English   中英

在 flutter 中使用 Dio 的 POST 問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM