gpt4 book ai didi

c# - StringContent 与 ObjectContent

转载 作者:可可西里 更新时间:2023-11-01 08:08:15 26 4
gpt4 key购买 nike

我正在使用 System.Net.Http 的 HttpClient 通过“POST”调用 REST API使用以下代码:

using (HttpRequestMessage requestMessage = new HttpRequestMessage(
HttpMethod.Post, new Uri(request)) { })
{
response = await httpClient.PostAsync(request, objectContent);
}

“objectContent”目前是这个 -

objectContent = new ObjectContent(jsonContent.GetType(),
jsonContent,
new JsonMediaTypeFormatter());

我想知道如果这是一个 StringContent 而不是像这样的 ObjectContent 会有什么不同?

objectContent = new StringContent(content);
objectContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");

两者都很好。因为它是 JSON,所以我倾向于假设 StringContent 是有意义的。但是什么时候使用 ObjectContent,因为几乎所有发送的内容都是“字符串”。

最佳答案

I was wondering what difference it makes if this was a StringContent rather than an ObjectContent like this?

在您的示例中不会有任何区别。 ObjectContent只允许通过 HttpClient 发送“更广泛”的类型, 而 StringContent string 较窄仅值,例如 JSON。

StringContent是围绕 ByteArrayContent 的细长包装,并实际存储作为 byte[] 传递的值.您只需获得不需要转换 string 的好处来回。

编辑:

鉴于您发布的是 JSON,您甚至可以使用 HttpClientExtensions.PostAsJsonAsync<T> 使其更简洁:

await httpClient.PostAsJsonAsync(url, json);

关于c# - StringContent 与 ObjectContent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30704584/

26 4 0