![](/img/trans.png)
[英]Consuming WEB API using HttpClient in c# console application
[英]PUT Request for REST API in C# console application using HttpClient()
我对使用C#创建和使用REST Web服务非常陌生。 我已经对要发送到REST端点的数据进行了编程。 我不确定我是否做得正确。 就像我之前提到的,这是我第一次编写RESTful PUT请求。
我创建了一个类并创建了一个PUT请求。 我想查看我的JSON结果。 它no content
显示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结果?
API返回204 - No Content
PUT
请求中204 - No Content
仅表示该API收到了该请求并对其进行了处理,但是除了成功(2xx)响应状态外,它没有任何有意义的回馈。
在RESTful API中,这是所期望的完全正常的响应。
为了确定应该发生什么,您需要查阅所用API的文档。
您可以在线使用Postman等API测试工具或其他一些工具,并在工具中提供适当的输入。 检查Put查询的输出。 然后,您可能会知道确切的问题。
我认为,其他人已经通过答案和评论回答了它。 但是,由于问题仍然悬而未决,让我尝试提供更多详细信息。
您认为应该能够将JSON结果作为PUT API响应的一部分的假设并不总是正确的,这取决于API的实现。
以下是可以实现PUT API的不同方法:
PUT API给出对象作为响应:
[HttpPut] public HttpResponseMessage Put(int id, Product product) { //save the Product object. return Request.CreateResponse(HttpStatusCode.OK, product); }
在此实现中,API会在响应中提供对象,这正是您所期望的。
PUT API给出空响应:
[HttpPut] public void Put(int id, Product product) { //save the Product object. }
在此实现中,API不会返回任何响应。
根据您的解释,正在调用的API遵循第二种方法。 如果您有权访问API代码,则可以进行验证。
因此,如果唯一的问题是知道API是否不起作用,请执行代码以执行PUT,然后对同一对象执行GET以验证更新是否成功。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.