【发布时间】:2019-03-22 18:52:58
【问题描述】:
我对在 C# 中创建和使用 REST Web 服务非常陌生。我已经对要发送到 REST 端点的数据进行了编程。我不确定我是否正确地做所有事情。就像我之前提到的,这是我第一次编写 RESTful PUT 请求。
我创建了一个类并创建了一个 PUT 请求。我想看看我的 JSON 结果。它显示no content。函数正在为我返回正确的结果。
如何查看我的 JSON 结果?
sb 是 Student 类型的对象,当我向 URL 发送请求时,它返回 204 状态并且无法更新记录。我试图了解这段代码中有什么不正确的地方:
class Student
{
public string Name{ get; set; }
public string Email{ get; set; }
public int Marks{ get; set; }
public List<int> Skills{ get; set; }
}
public static void SendDataSomewhere(List<Student> studentsList)
{
using (var client = new HttpClient())
{
Student sb = new Student
{
Name= "Test Name",
Email = "test@gmail.com",
Marks = HighestMarksFromList(studentsList),
Skills = InDemandSkills(studentsList),
};
client.BaseAddress = new Uri("http://testingApi.net/");
var response = client.PutAsJsonAsync("test", sb).Result;
if (response.IsSuccessStatusCode)
{
Console.Write("Success");
}
else
Console.Write("Error");
}
}
函数正在为我返回正确的结果。 var response 正在返回 204 状态码。
如何查看我的 JSON 结果?
【问题讨论】:
-
204 表示“无内容”,因此可能没有 JSON 响应。为什么你认为应该有? (旁注:调用
.Result通常是错误的方法。改用async/await。) -
看起来您并没有在等待异步 PUT 的结果,但我希望在这种情况下 result 没有值。这是一个真正的 API(以及你的真实代码吗?),它应该返回一个 PUT 的结果吗?
-
@Charleh 是的,它是真正的代码和 API。链接不是真实的。有些属性也不是真实的,但 API 是真实的。我已经更改了属性/类的名称。如何等待异步 PUT 请求的结果?
-
@David,我如何使用 aSync/Await?
-
@LearnAspNet:然后听起来响应是空的。一个 204 HTTP 代码很可能有。那么究竟是什么问题呢?如果您期望来自服务器的响应但没有得到响应,那么这听起来像是要与维护该 API 的人一起讨论。
标签: c# rest dotnet-httpclient