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();
                }
            }
        }
    }
  • 相关阅读:
    支付宝即时到账接口
    bootstrp-select插件使用
    仿百度收索模糊提醒
    web项目架构
    springmvc的图片上传与导出显示
    jsp前端实现分页代码
    eclipse内下载及配置maven插件(转)
    Maven pom文件常用配置,转载
    阶段回顾
    html涉及的技术梳理
  • 原文地址:https://www.cnblogs.com/lee2011/p/7421641.html
Copyright © 2011-2022 走看看