public class HttpHelp
{
public CookieContainer CookieContainer { get; set; } public CookieCollection CookieCollection { get; set; } public HttpHelp()
{
this.CookieCollection = new CookieCollection();
this.CookieContainer = new CookieContainer();
} public string GetHtml(string url, string Referer, Encoding encode, bool SaveCookie)
{
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
req.Method = "GET";
req.CookieContainer = this.CookieContainer;
req.Proxy = null;
if (!string.IsNullOrEmpty(Referer))
req.Referer = Referer;
using (HttpWebResponse hwr = req.GetResponse() as HttpWebResponse)
{
if (SaveCookie)
{
this.CookieCollection = hwr.Cookies;
this.CookieContainer.GetCookies(req.RequestUri);
}
using (StreamReader SR = new StreamReader(hwr.GetResponseStream(), encode))
{
return SR.ReadToEnd();
}
}
} public static string GetHtml(string url, string Referer, Encoding encode)
{
return new HttpHelp().GetHtml(url, Referer, encode, false);
} public string PostHtml(string url, string Referer, string data, Encoding encode, bool SaveCookie)
{
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
req.CookieContainer = this.CookieContainer;
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
req.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:30.0) Gecko/20100101 Firefox/30.0";
req.Proxy = null;
req.ProtocolVersion = HttpVersion.Version10;
if (!string.IsNullOrEmpty(Referer))
req.Referer = Referer;
byte[] mybyte = Encoding.Default.GetBytes(data);
req.ContentLength = mybyte.Length;
using (Stream stream = req.GetRequestStream())
{
stream.Write(mybyte, , mybyte.Length);
}
using (HttpWebResponse hwr = req.GetResponse() as HttpWebResponse)
{
if (SaveCookie)
{
this.CookieCollection = hwr.Cookies;
this.CookieContainer.GetCookies(req.RequestUri);
}
using (StreamReader SR = new StreamReader(hwr.GetResponseStream(), encode))
{
return SR.ReadToEnd();
}
}
} public Image getImage(string url, string Referer, bool SaveCookie)
{
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
req.Method = "GET";
req.CookieContainer = this.CookieContainer;
req.Proxy = null;
if (!string.IsNullOrEmpty(Referer))
req.Referer = Referer;
using (HttpWebResponse hwr = req.GetResponse() as HttpWebResponse)
{
if (SaveCookie)
{
this.CookieCollection = hwr.Cookies;
this.CookieContainer.GetCookies(req.RequestUri);
}
return Image.FromStream(hwr.GetResponseStream());
}
}
}

HttpHeplp 公共类 HttpWebRequest的更多相关文章

  1. C# 实现模拟登录功能,实现公共类分享。

    前言 最近在研究模拟登录的各种方法, 主要想要实现的两个功能是: 1.点击按钮可以直接跳转并登录到某一个系统中. 2.抓取某一个系统中某一个页面中的特定数据. 为此在网上查了许多的资料,首先了解到自身 ...

  2. 一个Java文件至多包含一个公共类

    编写一个java源文件时,该源文件又称为编译单元.一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为[公共类 ...

  3. IOS 公共类-MyDateUtil 日期处理Util

    IOS 公共类-MyDateUtil 日期处理Util 此为处理日期的公共类.适用IOS6+ .h文件: #import <Foundation/Foundation.h> //适用 IO ...

  4. IOS 公共类-MyMBProgressUtil Progress显示

    IOS 公共类-MyMBProgressUtil Progress显示 此公共类用于显示提示框,对MBProgress的进一步封装.可以看下面的代码 接口: @interface MyMBProgre ...

  5. ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl

    ASP.NET中常用的几个开源公共类: LTP.Common.dll: 通用函数类库     源码下载Maticsoft.DBUtility.dll 数据访问类库组件     源码下载LtpPageC ...

  6. Java ClassLoader基础及加载不同依赖 Jar 中的公共类

    转载自:最新内容及最清晰格式请见 http://www.trinea.cn/android/java-loader-common-class/ 本文主要介绍 ClassLoader 的基础知识,Cla ...

  7. ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl (转)

    ASP.NET中常用的几个开源公共类: LTP.Common.dll: 通用函数类库     源码下载Maticsoft.DBUtility.dll 数据访问类库组件     源码下载LtpPageC ...

  8. 自己封装的C#操作redis公共类

    关于C#操作redis公共类,网上有很多版本,每个版本我都看了,发觉还是不够完美,都存在一个问题,只能操作单一的缓存数据库 redis指令支持上,这里可以自己去扩展,下面分享下我近期封装的一个redi ...

  9. Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类

    Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类 转载自http://www.trinea.cn/android/android-common-lib/ 介绍总结的一 ...

随机推荐

  1. shell 整理,更新,记录

    菜鸟级awk,读取android manifest,把key->value 保存到path.rc. awk -F "name=" '{if(/project path/) p ...

  2. 【bzoj4198】 Noi2015—荷马史诗

    http://www.lydsy.com/JudgeOnline/problem.php?id=4198 (题目链接) 题意 一篇文章n个单词,每个出现了${w_i}$次,用k进制数代替单词,使得任意 ...

  3. Java Web快速入门——全十讲

    Java Web快速入门——全十讲 这是一次培训的讲义,就是我在给学生讲的过程中记录下来的,非常完整,原来发表在Blog上,我感觉这里的学生可能更需要. 内容比较长,你可以先收藏起来,慢慢看. 第一讲 ...

  4. permeation开篇

    学习方法: To follow the path look to the master follow the master walk with the master see through the m ...

  5. secureCRT自动化脚本

    http://cysnow.iteye.com/blog/1698791 cd \crt "C:\Program Files\VanDyke Software\Clients\SecureC ...

  6. python关于列表的操作

    列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类 ...

  7. GitHub客户端发布托管代码

    初试GitHub及客户端使用 突然想分享代码,于是记起来曾几何时有人提到过GitHub这个东西,于是便各种百度,注册申请了一个账号,下载了windows客户端,全英文网站就连新手教程也是全英的,现在想 ...

  8. 使用PMD进行代码审查

    很久没写博客了,自从上次写的设计模式的博客被不知名的鹳狸猿下架了一次之后兴趣大减,那时候就没什么兴致写博客了,但是这段时间还没有停下来,最近也在研究一些其他的东西,目前有点想做点东西的打算,但好像也没 ...

  9. 蓝桥网试题 java 基础练习 数列特征

    ----------------------------------- Collections.sort(list);是个好东西 但是要学会排列 然后你才能浪 -------------------- ...

  10. 2017年试试Web组件化框架Omi

    Open and modern framework for building user interfaces. Omi的Github地址https://github.com/AlloyTeam/omi ...