乐时光博客园子

本文主要介绍在ASP.NET Core中,通过HttpClient PostAsync发送POST请求,POST Json数据的方法。

1、添加Microsoft.AspNet.WebApi.Client Nuget包引用

通过Nuget安装

Install-Package Microsoft.AspNet.WebApi.Client -Version 5.2.7

2、使用HttpClient的PostAsync方法发送Json数据请求

   : {    { }
} HttpClient().PostAsync(,  JsonContent( { x = , y =  }));

3、demo示例代码

1)PostAsync方法

 readonly HttpClient Client =  HttpClient();
public  Task<T> PostAsync<T>(string url, object data) where T : 
{
    
    {
        string content = JsonConvert.SerializeObject(data);
         buffer = Encoding.UTF8.GetBytes(content);
         byteContent =  ByteArrayContent(buffer);
        byteContent.Headers.ContentType =  MediaTypeHeaderValue();
         response =  Client.PostAsync(url, byteContent).ConfigureAwait();
        string result =  response.Content.ReadAsStringAsync();
         (response.StatusCode != HttpStatusCode.OK)
        {
            logger.Error($);
              T();
        }
        logger.Info($);
         JsonConvert.DeserializeObject<T>(result);
    }
     (WebException ex)
    {
         (ex.Response != )
        {
            string responseContent =  StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
              System.Exception($, ex);
        }
        ;
    }
}

2)GetAsync方法

  HttpClient Client =  HttpClient();

{
    
    {
         requestUrl = ;
        logger.Info();
         response =  Client.GetAsync(requestUrl).ConfigureAwait();
         result =  response.Content.ReadAsStringAsync();
        logger.Info();
         result;
    }
     (WebException ex)
    {
         (ex.Response != )
        {
             responseContent =  StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
              Exception(, ex);
        }
        ;
    }
}

{
     properties =  p  obj.GetType().GetProperties()
                         p.GetValue(obj, ) != 
                         p.Name +  + HttpUtility.UrlEncode(p.GetValue(obj, ).ToString());
     String.Join(, properties.ToArray());
}


上下篇:

相关推荐