gpt4 book ai didi

c# - 从 HTTP POST 检索响应正文

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

我正在 POST 到返回 409 响应代码以及如下所示的响应主体的 API:

    { 
"message": "Exception thrown.",
"errorDescription": "Object does not exist"
}

如何提取响应主体并反序列化它?

我正在使用 HttpClient:

    HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:60129");

var model = new Inspection
{
CategoryId = 1,
InspectionId = 0,
Descriptor1 = "test descriptor 121212",
Name = "my inspection 1121212"
};

var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(model);
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");

var result = client.PostAsync("api/Inspections/UpdateInspection", stringContent);

var r = result.Result;

这似乎是一件很平常的事情,但我正在努力寻找数据在我的结果中的位置。

最佳答案

您可以使用 ReadAsAsync<T>关于具体类型或ReadAsStringAsync的响应内容获取原始 JSON 字符串。

还建议使用 Json.Net 处理 JSON。

var response = await client.PostAsync("api/Inspections/UpdateInspection", stringContent);

var json = await response.Content.ReadAsStringAsync();

可以创建一个具体的响应模型

public class ErrorBody { 
public string message { get; set; }
public string errorDescription { get; set; }
}

并用于读取不成功的响应。

var response = await client.PostAsync("api/Inspections/UpdateInspection", stringContent);

if(response.IsSuccessStatusCode) {
//...
} else {
var error = await response.Content.ReadAsAsync<ErrorBody>();

//...do something with error.
}

关于c# - 从 HTTP POST 检索响应正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48284030/

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