.NET CORE使用HttpClient进行PostAnsy同步请求

Posted 沧海·

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET CORE使用HttpClient进行PostAnsy同步请求相关的知识,希望对你有一定的参考价值。

先说一下问题,由于之前公共方法用的都不是异步方法,所以没办法将方法改为async方法
也就导致 postansy方法无法使用 因为一旦用了返回就变为Task<>

  List<RealtimeData> realtimeDatas = new List<RealtimeData>();
            string source = "";
            //先将两条数据更新到数据库中
            foreach (var item in server.Points)
            
                source += "/" + item.Source + ",";
            
            ///请求对方接口 
            var res = "";
            HttpClient _httpClient = new HttpClient();
            var postContent = new MultipartFormDataContent(); 
            var requestUri = server.HostName;


            var values = new[]
            
                 new KeyValuePair<string, string>("id","1"), 
                 ;

            foreach (var keyValuePair in values)
            
                postContent.Add(new StringContent(keyValuePair.Value),
                    String.Format("\\"0\\"", keyValuePair.Key));
            
          var response =   Getcon(requestUri, postContent); 
            //处理返回JSON数据
            var q = JsonConvert.DeserializeObject<List<XNYQM>>(response);
             

            

注意 关键是Getcon方法如何返回不是Task格式

 public  static  string Getcon(string requestUri, MultipartFormDataContent postContent)
         
            HttpClient _httpClient = new HttpClient();
            var response = _httpClient.PostAsync(requestUri, postContent);
            
               response.Wait();
            var t2 = response.Result.Content.ReadAsByteArrayAsync();
            string str = System.Text.Encoding.UTF8.GetString(t2.Result);
            return str;
         

这里将接口返回的值进行byte转码就可以返回正常的string 然后在进行处理就可以了

以上是关于.NET CORE使用HttpClient进行PostAnsy同步请求的主要内容,如果未能解决你的问题,请参考以下文章

.NET Core - HttpClient 与 RestSharp [关闭]

.NET Core Httpclient 有效,但 .Net Framework 4.7.2 httpclient 无效

ASP.NET Core JWT 令牌无法通过 HttpClient 工作

ASP.NET Core HttpClient 请求在 webapi 返回 406 时返回 200

.NET Core 2.2 HttpClient/WebClient vs Curl - .NET 库对于某些服务器来说非常慢

.NET CORE HttpClient使用