zoukankan      html  css  js  c++  java
  • WebH

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    
    namespace Common
    {
        public class WebH
        {
            WebProxy proxy;
            public string ContentType { get; set; } = "application/x-www-form-urlencoded";
            public string Accept { get; set; } = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
            public string UserAgent { get; set; } = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36";
            public CookieContainer Cookie { get; set; } = new CookieContainer();
            public WebH() { }
            public WebH(WebProxy proxy)
            {
                this.proxy = proxy;
            }
            public WebH(string url, string user, string pwd)
            {
                proxy = new WebProxy()
                {
                    Address = new Uri(url),//"http://openproxy..com:8080"
                    Credentials = new NetworkCredential(user, pwd),
                };
            }
    
            public string GetHtml(string url)
            {
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
                HttpWebResponse response = null;
                try
                {
                    request.Method = "GET";
                    request.Proxy = proxy;
                    request.CookieContainer = Cookie;
                    request.ContentType = ContentType;
                    //request.ServicePoint.ConnectionLimit = 300;
                    response = (HttpWebResponse)request.GetResponse();
                    Stream responseStream = response.GetResponseStream();
                    StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
                    return streamReader.ReadToEnd();
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    request.Abort();
                    if (response != null)
                        response.Close();
                }
            }
    
            public string PostData(string url, string param, Action<WebHeaderCollection> action = null)
            {
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
                try
                {
                    byte[] bs = Encoding.ASCII.GetBytes(param);
                    request.Method = "POST";
                    request.Accept = Accept;
                    request.UserAgent = UserAgent;
                    request.Proxy = proxy;
                    request.ContentType = ContentType;
                    request.ContentLength = bs.Length;
                    request.CookieContainer = Cookie;
                    request.KeepAlive = true;
                    request.Referer = "https://www3.wipo.int/dasapplicant/en/pages/workbench/applicant.xhtml";
                    action?.Invoke(request.Headers);
                    using (Stream reqStream = request.GetRequestStream())
                    {
                        reqStream.Write(bs, 0, bs.Length);//写数据时开始访问
                    }
                    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    {
                        return new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
                    }
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
                finally
                {
                    request.Abort();
                }
            }
    
            public string PostDataAJAX(string url, string param)
            {
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
                try
                {
                    byte[] bs = Encoding.ASCII.GetBytes(param);
                    request.Method = "POST";
                    request.Accept = Accept;
                    request.UserAgent = UserAgent;
                    request.Proxy = proxy;
                    request.ContentType = ContentType;
                    request.ContentLength = bs.Length;
                    request.CookieContainer = Cookie;
                    request.KeepAlive = true;
                    //request.Connection = "keep-alive";
                    request.Headers.Add("X-Requested-With", "XMLHttpRequest");
                    using (Stream reqStream = request.GetRequestStream())
                    {
                        reqStream.Write(bs, 0, bs.Length);//写数据时开始访问
                    }
                    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    {
                        return new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
                    }
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
                finally
                {
                    //request.Abort();
                }
            }
        }
    }
  • 相关阅读:
    HttpServletRequest对象,自己学习的心得。
    @PathVariable注解的使用和@Requestparam
    微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
    (转)ubuntu 14.04下安装hadoop2.6(伪分布式)
    数据库范式
    C与Python变量的区别
    python3获取当前目录(转)
    最大连续子数组积的线性解法
    最大子数组的线性解法
    windows7下python3.4.3 添加库路径(转)
  • 原文地址:https://www.cnblogs.com/lee2011/p/7421641.html
Copyright © 2011-2022 走看看