C# HttpWebRequest (以json格式传参)

public static string HttpPostJSON(string url, string data)
{
System.Net.ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;
Encoding encode = Encoding.GetEncoding(“UTF-8”);
string htmlAll = “”;
try
{
StringBuilder sb = new StringBuilder();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = “POST”;
req.Headers.Set(“Accept-Language”, “zh-CN,en”);
req.Headers.Set(“UA-CPU”, “x86”);
//req.UserAgent = “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; QQDownload 1.7; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”;
req.UserAgent = “56xt/1.0 (Language=C#)”;
//req.Headers.Set(“Content-Type”, “application/x-www-form-urlencoded;charset=utf-8”);
req.ContentType = “application/json”;

            if (data != "")
            {
                byte[] SomeBytes = encode.GetBytes(data.ToString());
                req.ContentLength = SomeBytes.Length;
                Stream newStream = req.GetRequestStream();
                newStream.Write(SomeBytes, 0, SomeBytes.Length);
                newStream.Close();
            }
            else
            {
                req.ContentLength = 0;
            }
            StreamReader sr = null;
            HttpWebResponse res = null;
            Stream resStream = null;
            try
            {
                res = (HttpWebResponse)req.GetResponse();
                resStream = res.GetResponseStream();

                byte[] buffer = new byte[1024];
                int bytesRead;
                //取得WEB响应的数据流
                while ((bytesRead = resStream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    sb.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
                }
                //根据上面定义的数据流,以默认编码的方式定义一个读数据流
                sr = new StreamReader(resStream, encode);
            }
            catch (WebException e)
            {
                res = (HttpWebResponse)e.Response;
                resStream = res.GetResponseStream();
                byte[] buffer = new byte[1024];
                int bytesRead;
                while ((bytesRead = resStream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    sb.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
                }
                //根据上面定义的数据流,以默认编码的方式定义一个读数据流
                sr = new StreamReader(resStream, encode);
            }
            htmlAll = sb.ToString();
            // 读取数据流中的内容
            //关闭数据流
            resStream.Close();
            //关闭读数据流并释放资源
            sr.Close();
        }
        catch (Exception ex)
        {
            string s = ex.Message;
        }

        return htmlAll;
    }



    private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
    {
        return true; //总是接受  
    }  public static string HttpPostJSON(string url, string data)
    {
        System.Net.ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;
        Encoding encode = Encoding.GetEncoding("UTF-8");
        string htmlAll = "";
        try
        {
            StringBuilder sb = new StringBuilder();
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "POST";
            req.Headers.Set("Accept-Language", "zh-CN,en");
            req.Headers.Set("UA-CPU", "x86");
            req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; QQDownload 1.7; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
            req.UserAgent = "56xt/1.0 (Language=C#)";
            //req.Headers.Set("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
            req.ContentType = "application/json";

            if (data != "")
            {
                byte[] SomeBytes = encode.GetBytes(data.ToString());
                req.ContentLength = SomeBytes.Length;
                Stream newStream = req.GetRequestStream();
                newStream.Write(SomeBytes, 0, SomeBytes.Length);
                newStream.Close();
            }
            else
            {
                req.ContentLength = 0;
            }
            StreamReader sr = null;
            HttpWebResponse res = null;
            Stream resStream = null;
            try
            {
                res = (HttpWebResponse)req.GetResponse();
                resStream = res.GetResponseStream();

                byte[] buffer = new byte[1024];
                int bytesRead;
                //取得WEB响应的数据流
                while ((bytesRead = resStream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    sb.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
                }
                //根据上面定义的数据流,以默认编码的方式定义一个读数据流
                sr = new StreamReader(resStream, encode);
            }
            catch (WebException e)
            {
                res = (HttpWebResponse)e.Response;
                resStream = res.GetResponseStream();
                byte[] buffer = new byte[1024];
                int bytesRead;
                while ((bytesRead = resStream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    sb.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
                }
                //根据上面定义的数据流,以默认编码的方式定义一个读数据流
                sr = new StreamReader(resStream, encode);
            }
            htmlAll = sb.ToString();
            // 读取数据流中的内容
            //关闭数据流
            resStream.Close();
            //关闭读数据流并释放资源
            sr.Close();
        }
        catch (Exception ex)
        {
            string s = ex.Message;
        }

        return htmlAll;
    }



    private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
    {
        return true; //总是接受  
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值