gpt4 book ai didi

http - 使用 JSON 数组的 Flutter POST

转载 作者:IT王子 更新时间:2023-10-29 07:00:53 26 4
gpt4 key购买 nike

我需要使用包含数组的 JSON 创建发布请求。 http.post方法只接受 Map<String, String> .因此,我无法传递 <String,dynamic> 类型的 map 。因为 map 将包含一个列表。这是我的显式 HttpClientRequest 代码:

String jsonString = json.encode(body); // encode map to json
List<int> bodyBytes = utf8.encode(jsonString); // utf8 encode
HttpClient client = new HttpClient();
HttpClientRequest request = await client.postUrl(uri);
// it's polite to send the body length to the server

request.headers.set('Content-Length', bodyBytes.length.toString());
request.headers.set('Authorization', '...');
request.headers.set('X-Authorization', apiKey);
request.headers.set("Accept", "application/json");
request.headers.set('Content-Type', 'form-data');
request.add(bodyBytes);
HttpClientResponse response = await request.close();
response.transform(utf8.decoder).listen((contents) {
// handle data
return jsonDecode(contents);
});

问题是,上面的请求失败了。

编辑:

创建的json是:

{  
"subject":"PLEASE",
"message":"JUST. WORK.",
"filter":"[8]",
}

但是服务器期望的 JSON 是:

{  
"subject":"PLEASE",
"message":"JUST. WORK.",
"filter":[8],
}

我主要关心的是如何创建一个 JSON 数组...

最佳答案

发现问题。有两个主要问题:

  1. 我在将 List 添加到 Map 时将其转换为 JSON 字符串。仅将 List 直接添加到 Map 之后,它似乎生成了正确的 JSON。
  2. 请求头中的content-type必须设置为application/json。

感谢@Edman 添加一些方向。

关于http - 使用 JSON 数组的 Flutter POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50736752/

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