📜  如何发布请求 C# 并返回 responsebody - C# (1)

📅  最后修改于: 2023-12-03 14:52:11.144000             🧑  作者: Mango

如何发布请求 C# 并返回 responsebody - C#

在 C# 代码中,我们常常需要在程序中发送 HTTP 请求,然后获取服务器返回的响应结果,这就需要使用到发送 HTTP 请求的方法。本篇文章将会介绍如何使用 C# 发送 HTTP 请求并返回 responsebody 的方法。

发送 HTTP 请求

C# 提供了 HttpClient 类来发送 HTTP 请求,使用该类可以轻松地在 C# 程序中发送 HTTP 请求。下面是一个简单的发送 HTTP 请求的示例代码:

using System;
using System.Net.Http;

class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        using (var httpClient = new HttpClient())
        {
            using (var request = new HttpRequestMessage(new HttpMethod("GET"), "https://www.example.com"))
            {
                HttpResponseMessage response = await httpClient.SendAsync(request);

                if (response.IsSuccessStatusCode)
                {
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseBody);
                }
                else
                {
                    Console.WriteLine($"请求出错:{response.StatusCode}");
                }
            }
        }
    }
}

在上面的代码中,我们使用 HttpClient 类创建了一个 HTTP 客户端,然后使用 HttpRequestMessage 创建了一个 GET 请求,请求的 URL 为 https://www.example.com。最后使用 SendAsync 方法发送请求,并获取服务器的响应结果。

返回 responsebody

在发送完 HTTP 请求之后,我们需要从响应结果中获取服务器返回的 responsebody。这可以通过 HttpResponseMessage 对象的 Content 属性来获取。Content 属性表示 HTTP 响应的内容,它是一个 HttpContent 类型的对象,可以使用 ReadAsStringAsync 方法将响应内容转换成字符串。

下面是一个示例代码:

HttpResponseMessage response = await httpClient.SendAsync(request);

if (response.IsSuccessStatusCode)
{
    string responseBody = await response.Content.ReadAsStringAsync();
    Console.WriteLine(responseBody);
}
else
{
    Console.WriteLine($"请求出错:{response.StatusCode}");
}

在上面的代码中,我们首先判断响应的返回状态码是否为成功状态码。如果是的话,我们就使用 ReadAsStringAsync 获取响应的 responsebody。如果返回的状态码是错误的,我们就直接输出错误信息。

总结

在本文中,我们介绍了如何使用 C# 发送 HTTP 请求并获取服务器返回的 responsebody 的方法。我们首先使用 HttpClient 类创建了一个 HTTP 客户端,然后使用 HttpRequestMessage 创建了一个 HTTP 请求。最后使用 SendAsync 方法发送请求,并获取服务器的响应结果。最后判断响应的返回状态码是否为成功状态码,如果是的话,我们就使用 ReadAsStringAsync 获取响应的 responsebody。如果返回的状态码是错误的,我们就直接输出错误信息。