zoukankan      html  css  js  c++  java
  • Post请求数据


    /// <summary>
    /// 发送post请求(json)
    /// </summary>
    /// <param name="url"></param>
    /// <param name="postData"></param>
    /// <returns></returns>
    public static string PostUrl(string url, string postData)
    {
    string result = "";
    try
    {
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    req.Timeout = 10000;//设置请求超时时间,单位为毫秒
    req.ReadWriteTimeout = 10000;
    //参照浏览器的请求报文 封装需要的参数 这里参照ie9
    //浏览器可接受的MIME类型
    req.Accept = "text/plain, */*; q=0.01";
    //浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用
    req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36";
    req.ContentType = "application/json; charset=UTF-8";
    //请求类型为application/x-www-form-urlencoded时替换
    //req.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
    //请求方式
    req.Method = "POST";
    //是否保持常连接
    req.KeepAlive = false;
    req.Headers.Add("Accept-Encoding", "gzip, deflate");

    byte[] data = Encoding.UTF8.GetBytes(postData);

    req.ContentLength = data.Length;
    //将传输的数据,请求正文写入请求流
    using (Stream reqStream = req.GetRequestStream())
    {
    reqStream.Write(data, 0, data.Length);

    reqStream.Close();
    }

    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

    //判断响应的信息是否为压缩信息 若为压缩信息解压后返回
    if (resp.ContentEncoding == "gzip")
    {
    MemoryStream ms = new MemoryStream();
    GZipStream zip = new GZipStream(resp.GetResponseStream(), CompressionMode.Decompress);
    byte[] buffer = new byte[1024];
    int len = zip.Read(buffer, 0, buffer.Length);
    while (len > 0)
    {
    ms.Write(buffer, 0, len);
    len = zip.Read(buffer, 0, buffer.Length);
    }
    ms.Dispose();
    zip.Dispose();
    result = Encoding.UTF8.GetString(ms.ToArray());
    }
    else
    {
    Stream s1 = resp.GetResponseStream();
    StreamReader sr = new StreamReader(s1);
    result = sr.ReadToEnd();
    }
    return result;
    }
    catch (IOException ex)
    {

    throw ex;
    }


    }

  • 相关阅读:
    关于git
    关于 素材,设计
    utiles
    sqlite
    蓝牙
    一个简单的Maven小案例
    【日志卡住不动】Registering current configuration as safe fallback point
    一分钟部署nacos
    生产日志文件太大NotePad++无法打开
    idea 安装 codota 插件
  • 原文地址:https://www.cnblogs.com/xuexian/p/8697352.html
Copyright © 2011-2022 走看看