gpt4 book ai didi

c# - Request.CreateResponse 与 response.Content?

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:46 25 4
gpt4 key购买 nike

我的代码是

var response = Request.CreateResponse(HttpStatusCode.OK);
response.Content = new StringContent(
JsonConvert.SerializeObject(data),
Encoding.UTF8, "application/json");
return response;

它通过返回一些 json 数据工作正常。

后来我注意到Request.CreateResponse()可以接受第二个参数T valuevalue的内容HTTP 响应消息。所以我试着把上面三行压缩成一行

return Request.CreateResponse(
HttpStatusCode.OK, new StringContent(JsonConvert.SerializeObject(data),
Encoding.UTF8, "application/json"));

但它并没有像预期的那样工作。它返回

{
"Headers": [
{
"Key": "Content-Type",
"Value": [
"application/json; charset=utf-8"
]
}
]
}

我是不是误解了 Request.CreateResponse() 的第二个参数?

最佳答案

Did I misunderstand the second parameter of Request.CreateResponse()

是的,你有。第二个参数只是值本身。您将 StringContent 作为 T 值 传递,而不是让 CreateResponse 使用您传递的正确内容类型为您序列化它。您看不到数据的原因是 CreateResponse 可能不了解如何正确序列化 StringContent 类型的对象。

您只需要:

return Request.CreateResponse(HttpStatusCode.OK, data, "application/json"));

关于c# - Request.CreateResponse 与 response.Content?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31630093/

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