如何进行http web asyncGET请求

问题描述 投票:0回答:1

我想在这里发出获取请求的代码是我放置的代码:

    public string Get(string uri)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
    request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

    using(HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    using(Stream stream = response.GetResponseStream())
    using(StreamReader reader = new StreamReader(stream))
    {
        return reader.ReadToEnd();
    }
}

但是问题是它将冻结UI,并且我找到了此代码:

public async Task<string> GetAsync(string uri)
{
   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
   request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

   using(HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
   using(Stream stream = response.GetResponseStream())
   using(StreamReader reader = new StreamReader(stream))
   {
       return await reader.ReadToEndAsync();
   }
}

但是我不擅长多任务处理

anyhelp如何使用此功能tnx

c# .net
1个回答
0
投票

我不知道您想做什么,但是您可以尝试删除使用方法,因为您只需要在导入部分中添加使用方法,然后尝试更像这样使用您的方法:

公共类HttpHandler{

        static HttpClient client = new HttpClient();


        public async Task<string> Get(string apiURL)
        {
            HttpResponseMessage response = await client.GetAsync(apiURL);
            Stream stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream);
            return await reader.ReadToEndAsync();
        }

    }
© www.soinside.com 2019 - 2024. All rights reserved.