gpt4 book ai didi

curl - 在Flutter中使用Dio进行POST时遇到问题

转载 作者:行者123 更新时间:2023-12-03 03:58:49 24 4
gpt4 key购买 nike

我正在尝试使用Dio在flutter中复制以下curl命令。

$ curl -X POST -d '{"k":"cc","v":"4i8pwFwPkImsnLmIj54BYJA4Z94j0OLyl7vwKecELzYGKbM5Vra6H9T0DI"}' http://192.168.0.1/set

它用于设置处于HotSpot模式的IOT设备,因此设置为192.168.0.1的POST。

这是到目前为止我尝试过的代码。
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命令,它可以工作。

我熟悉 website,它可以神奇地将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));
}

关于curl - 在Flutter中使用Dio进行POST时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com