zoukankan      html  css  js  c++  java
  • 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);
            }
    

      

     
     
  • 相关阅读:
    高效并发服务器模型
    Linux下Wiki服务器的搭建
    Wiki程序PmWiki的安装和汉化
    Linux 套接字编程中的 5 个隐患
    IOCP简介
    IP协议详解之IP地址要领
    IP协议详解之配套协议:ARP, ICMP
    超级详细Tcpdump 的用法
    如何测试主机的MTU多大?
    Linux下Socket编程的端口问题( Bind error: Address already in use )
  • 原文地址:https://www.cnblogs.com/wgscd/p/12766296.html
Copyright © 2011-2022 走看看