首页 > 解决方案 > 使用 HttpClient() 在 C# 控制台应用程序中 PUT 请求 REST API

问题描述

我对在 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 结果?

标签: c#restdotnet-httpclient

解决方案


204 - No Content从请求返回的 APIPUT仅表示 API 接收到请求并对其进行了处理,但除了成功 (2xx) 响应状态之外,它没有任何意义可以返回。

在 RESTful API 中,这是一个完全正常的预期响应。

为了确定会发生什么,您需要查阅您正在使用的 API 的文档。


推荐阅读