/// <summary>
/// 异步调用
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="url"></param>
/// <param name="jObject"></param>
/// <returns></returns>
protected virtual async Task<T> PostHttpRequestWithJsonFormat<T>(string url, object jObject) where T : BaseResponse
, new()
{
try
{
string inputJson = JsonConvert.SerializeObject(jObject);
// WriteLog("url = " + url + "inputJson = " + inputJson);
var httpClient = new HttpClient();
//代理网络多了一个文件头 取消掉
httpClient.DefaultRequestHeaders.ExpectContinue = false;
httpClient.Timeout = TimeSpan.FromSeconds(120);
var httpContent = new StringContent(inputJson);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
httpClient.DefaultRequestHeaders.Add("User-Agent", "windows");
var httpResponseMessage = await httpClient.PostAsync(url, httpContent);
httpResponseMessage.Version = HttpVersion.Version10;
if (httpResponseMessage.Content == null)
{
return null;
}
string rcv = await httpResponseMessage.Content.ReadAsStringAsync();
var baseRet = JsonConvert.DeserializeObject<BaseResponse>(rcv);
if (baseRet != null)
{
if (baseRet.IsSuccess())
{
if (baseRet.data == null)
{
return new T()
{
code = baseRet.code,
msg = baseRet.msg,
};
}
else
return new T()
{
code = baseRet.code,
msg = baseRet.msg,
data = baseRet.data
};
}
else
{
return new T() { code = baseRet.code, msg = baseRet.msg };
}
}
else
{
return new T() { code = "-1", msg = rcv };
}
}
catch (Exception ex)
{
// WriteLog("调用接口异常 " +ex.Message);
return new T() { code = "-1", msg = ex.Message };
}
}