• C# HTTP Get Post 提交数据可以指定代理IP、指定浏览器、指定来源


            /// <summary>
            /// Get读取数据
            /// </summary>
            /// <param name="myUrl">网址</param>
            /// <param name="myProxy">IP代理</param>
            /// <param name="myUserAgent">浏览器</param>
            /// <param name="myReferer">来源</param>
            /// <returns></returns>
            private string HttpGetData(string myUrl, WebProxy myProxy = null, string myUserAgent = "", string myReferer = "")
            {
                try
                {
                    //创建请求
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUrl);
                    if (myProxy != null) request.Proxy = myProxy; //设置代理
                    if (!string.IsNullOrWhiteSpace(myReferer)) request.Referer = myReferer;
                    if (!string.IsNullOrWhiteSpace(myReferer)) request.UserAgent = myUserAgent;//浏览器
    
                    request.Method = "GET";//请求方式
                    request.ContentType = "text/html;charset=UTF-8";//类型
                    request.Timeout = 3000;//超时
    
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    Stream stream = response.GetResponseStream();
                    string responseStr = "";
                    if (stream != null)
                    {
                        StreamReader reader = new StreamReader(stream, Encoding.UTF8);
                        responseStr = UnicodeToGB(reader.ReadToEnd());
                        reader.Close();
                    }
                    response.Close();
    
                    return responseStr;
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            }
    
    
            /// <summary>
            /// Post提交数据
            /// </summary>
            /// <param name="myUrl">网址</param>
            /// <param name="myParam">参数</param>
            /// <param name="myProxy">IP代理</param>
            /// <param name="myUserAgent">浏览器</param>
            /// <param name="myReferer">来源</param>
            /// <returns></returns>
            public string HttpPostData(string myUrl, string myParam, WebProxy myProxy = null, string myUserAgent = "", string myReferer = "")
            {
                try
                {
                    //创建请求
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUrl);
                    if (myProxy != null) request.Proxy = myProxy; //设置代理
                    if (!string.IsNullOrWhiteSpace(myReferer)) request.Referer = myReferer;
                    if (!string.IsNullOrWhiteSpace(myReferer)) request.UserAgent = myUserAgent;//浏览器
    
                    request.Method = "POST";//请求方式
                    request.ContentType = "application/json;charset=UTF-8";//类型     
                    request.Timeout = 3000;//超时
    
                    byte[] payload = Encoding.UTF8.GetBytes(myParam);//参数编码
                    request.ContentLength = payload.Length;
    
                    //发送post的请求,写入参数
                    Stream writer = request.GetRequestStream();
                    writer.Write(payload, 0, payload.Length);
                    writer.Close();
    
                    //接受返回来的数据
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    Stream stream = response.GetResponseStream();
    
                    string responseStr = "";
                    if (stream != null)
                    {
                        StreamReader reader = new StreamReader(stream, Encoding.UTF8);
                        responseStr = UnicodeToGB(reader.ReadToEnd());
                        reader.Close();
                    }
                    response.Close();
    
                    return responseStr;
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            }
    

      

  • 相关阅读:
    [Android] 布局优化技巧
    [Android] 仿照 Last App Switcher 写的小程序
    [Java] 用 Comparator 实现排序
    [Android] Service服务详解以及如何使service服务不被杀死
    [MarkDown] markdown语法小结
    [Android] TextView长按复制实现方法小结(转载)
    [Android] 关于系统工具栏和全屏沉浸模式
    [Android] 锁定屏幕
    [Android] 针对生成的图片文件在系统Gallery不显示的处理
    [Android] TableLayout
  • 原文地址:https://www.cnblogs.com/wxbug/p/14852113.html
Copyright © 2020-2023  润新知