Http请求报头设置(C#)

摘要:
1.添加SetHeaderValue方法:publicstaticvoidSetHeaderValue(WebHeaderCollectionheader,stringname,stringvalue){varproperty=typeof(WebHeader Collection).GetProperty(“InnerCollection”,BindingFlags.Instance | Bind

1、添加一个SetHeaderValue方法:

public static void SetHeaderValue(WebHeaderCollection header, string name, stringvalue)
{
var property = typeof(WebHeaderCollection).GetProperty("InnerCollection",BindingFlags.Instance |BindingFlags.NonPublic);
if (property != null)
{
var collection = property.GetValue(header, null) asNameValueCollection;
collection[name] =value;
}
}

2、调用这个方法设置HttpHeader头:

HttpWebRequest rq = (HttpWebRequest)WebRequest.Create("Url");
rq.Method = "GET";
SetHeaderValue(rq.Headers, "Host", "127.0.0.1");
SetHeaderValue(rq.Headers, "Connection", "keep-alive");
SetHeaderValue(rq.Headers, "Accept", "*/*");
SetHeaderValue(rq.Headers, "X-Requested-With", "XMLHttpRequest");
SetHeaderValue(rq.Headers, "User-Agent", "...");
SetHeaderValue(rq.Headers, "Referer", "http://127.0.0.1/index.php?m=Index&a=indexs");
SetHeaderValue(rq.Headers, "Accept-Encoding", "gzip, deflate");
SetHeaderValue(rq.Headers, "Accept-Language", "1.5");
SetHeaderValue(rq.Headers, "Cookie", "This is Cookie");
 
HttpWebResponse resp =(HttpWebResponse)rq.GetResponse();
 
using (Stream stream =resp.GetResponseStream())
{
StreamReader reader =newStreamReader(stream,Encoding.Default);
string responseString =reader.ReadToEnd();
MessageBox.Show(responseString);
}

3.可以通过抓包软件(如SRSniffer)查看到设置的报头。

来源;https://www.cnblogs.com/hnsongbiao/p/9381987.html

免责声明:文章转载自《Http请求报头设置(C#)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL Server内存理解的误区c#基础-自动内存管理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQLite安装 以及 SQLite header and source version mismatch错误解决 (In debian)

小项目 需要sqlite3数据库支持 官网下载 http://www.sqlite.org/download.html 解压,进入目录执行 ./configure make make install 运行后出错 哈哈麻烦让人成长 关键词搜索到了 http://blog.csdn.net/gebitan505/article/details/19982...

Java中ASM框架详解

什么是asm呢?asm是assembly的缩写,是汇编的称号,对于java而言,asm就是字节码级别的编程。  而这里说到的asm是指objectweb asm,一种.class的代码生成器的开源项目.  ASM是一套java字节码生成架构,它可以动态生成二进制格式的stub类或其它代理类,  或者在类被java虚拟机装入内存之前,动态修改类。  现在挺多...

js/java 获取、添加、修改、删除cookie(最全)

  一、cookie介绍 1.cookie的本来面目   HTTP协议本身是无状态的。什么是无状态呢,即服务器无法判断用户身份。Cookie实际上是一小段的文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求...

如何构建可缓存站点

同一个资源保证URL的稳定性 URL是浏览器缓存机制的基础,所以如果一个资源需要在多个地方被引用,尽量保证URL是固定的。同时,比较推荐使用公共类库,比如Google Ajax Library等,有利于最大限度使用缓存 给Css、js、图片等资源增加HTTP缓存头,并强制入口Html不被缓存 对于不经常修改的静态资源,比如Css,js,图片等,可以设置一个...

mybatis传入多个参数

需要查阅本文的基本都是需要传入多个参数的,这里记住一句话:无论你传的参数是什么样的,最后mybtis都会将你传入的转换为map的,那么既然这样,当我们要传入多个参数时,何不直接给与map类型即可,然后mapper.xml通过#{map.key}来获取值即可,这个特别适合动态搜索,或者多个参数的查询,并且可以在mapper的xml语句中通过if判断来实现若为...

【转发】Cookie存储的值大小限制和个数问题

Cookie以及LocalStorage、SessionStorage的区别 缓存机制对于用户访问网页来说是很方便的。如果将用户名,偏好设定或者其他一些数据存储到客户端,而不必每次访问网页都输入数据,可能对于用户体验会更好。常用的缓存机制有Cookie和Web缓存机制这两大类。 Cookie机制Cookie应该算是HTTP里面的一个概念。关于HTTP协议,...