.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 库对于某些服务器来说非常慢