当HttpClient响应时出错

本文关键字:出错 响应 HttpClient | 更新日期: 2023-09-27 18:11:41

我在c#控制台应用程序中使用HttpClient做HTTP get请求。我没有得到一个get请求的预期响应。

Get Request就像http://example.com/xyz/SearchProduct?productNo=11210& 1 d6rstc9xc = 5 jyi27htzk

我得到一些模糊的响应,但当我做同样的得到请求与小提琴手它给出预期的响应。

我如何从httpClient.GetAsync(url)得到预期的响应?

代码为:-

            var httpClient = new HttpClient();
            var url = "http://example.com/xyz/SearchProduct?productNo=11210&1d6rstc9xc=5jyi27htzk";
            HttpResponseMessage response1 = await httpClient.GetAsync(url);
            if (response1.IsSuccessStatusCode)
            {
                HttpContent stream = response1.Content;
                Task<string> data = stream.ReadAsStringAsync();
            }

当HttpClient响应时出错

你应该这样读:

string result = await stream.ReadAsStringAsync();

而不是:

Task<string> data = stream.ReadAsStringAsync();
下面是完整的代码示例和另一个示例

这是一个使用async/await方法的完整方法。

   private static async Task<string> GetRequestContentAsString(string url)
    {
        var data = string.Empty;
        using (var httpClient = new HttpClient())
        {
            var response = await httpClient.GetAsync(url);
            if (response.IsSuccessStatusCode)
            {
                var stream = response.Content;
                data = await stream.ReadAsStringAsync();
            }
        }
        return data;
    }

这个方法是这样调用的:

var content = await GetRequestContentAsString("http://www.bing.com");