HttpClient.PostAsynct 发送Json数据


HttpClient.PostAsync第二个参数设置HttpContent 发送Json数据。

需要这是这个content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");

如果这是这样 : client.DefaultRequestHeaders.Add("ContentType", "application/json"); 设置去请求有时候会不成功,服务端不认。说你mediaType不正确。

 public async static Task<string> SendRequest(string url, string data)
        {
            var responseJson = "";
            var client = new HttpClient();
            try
            {
                client.Timeout = new TimeSpan(1, 0, 0, 0, 0);
                client.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
                client.DefaultRequestHeaders.Add("Keep-Alive", "timeout=600");
                client.DefaultRequestHeaders.Add("ContentType", "application/json");
                client.DefaultRequestHeaders.Add("Accept", "*/*");
   
               HttpContent content = new StringContent(data);
               content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
                var Result =await  client.PostAsync(url, content);
                if (Result.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    responseJson = await Result.Content.ReadAsStringAsync();
                }
                else
                {
                    throw new Exception("Request Url is " + url+ " Response is " + Result.StatusCode);
                }
                if (string.IsNullOrEmpty(responseJson))
                {
                    throw new Exception("Request Url is " + url + " Response is " + Result.StatusCode);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                client.Dispose();
            }
            return await Task.FromResult(responseJson);
        }

  

 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM