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();
                }
            }
        }
    }
  • 相关阅读:
    (四十九)Quartz2D自定义控件
    (四十八)Quartz2D引擎进阶
    (四十七)Quartz2D引擎初步
    (四十六)内存管理的复习
    (四十五)Modal 模态窗口 -遮盖
    (四十四)TabBarController和NagivationController配合
    (四十三)UITabBarController和AppDelegate的一些细节
    (四十二)tableView的滑动编辑和刷新 -局部刷新和删除刷新 -待解决问题
    linux命令——svn分支创建、合并
    C++异常处理
  • 原文地址:https://www.cnblogs.com/lee2011/p/7421641.html
Copyright © 2011-2022 走看看