首页 > 解决方案 > 如何在 c# 中使用 HttpClient GetAsync 方法传递请求内容

问题描述

如何在HttpClient.GetAsync方法中传递请求内容?我需要根据请求内容获取数据。

[HttpGet]
public async Task<HttpResponseMessage> QuickSearch()
{
    try
    {
        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Accept.Clear();
            HttpResponseMessage response =await client.GetAsync("http://localhost:8080/document/quicksearch");

            if (response.IsSuccessStatusCode)
            {
                Console.Write("Success");
            }

标签: c#

解决方案


如果您使用的是 .NET Core,标准的 HttpClient 可以开箱即用地执行此操作。例如,要发送带有 JSON 正文的 GET 请求:

HttpClient client = ...

...

var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("some url"),
    Content = new StringContent("some json", Encoding.UTF8, ContentType.Json),
};

var response = await client.SendAsync(request).ConfigureAwait(false);
response.EnsureSuccessStatusCode();

var responseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

推荐阅读