问题:request.Headers;结果:HttpWebRequest.Headers 属性
指定构成 HTTP 标头的名称/值对的集合。
Headers 集合包含与请求关联的协议标头。下表列出了由系统或由属性或方法设置但未存储在 Headers 中的 HTTP 标头。
|
标头 |
设置方 |
|---|---|
|
Accept |
由 Accept 属性设置。 |
|
Connection |
由 Connection 属性和 KeepAlive 属性设置。 |
|
Content-Length |
由 ContentLength 属性设置。 |
|
Content-Type |
由 ContentType 属性设置。 |
|
Expect |
由 Expect 属性设置。 |
|
Date |
由系统设置为当前日期。 |
|
Host |
由系统设置为当前主机信息。 |
|
If-Modified-Since |
由 IfModifiedSince 属性设置。 |
|
Range |
由 AddRange 方法设置。 |
|
Referer |
由 Referer 属性设置。 |
|
Transfer-Encoding |
由 TransferEncoding 属性设置(SendChunked 属性必须为 true)。 |
|
User-Agent |
由 UserAgent 属性设置。 |
如果您试图设置这些受保护的标头之一,则 Add 方法将引发 ArgumentException。
在通过调用 GetRequestStream、BeginGetRequestStream、GetResponse 或 BeginGetResponse 方法启动请求之后,更改 Headers 属性将引发 InvalidOperationException。
不应该假设标头值会保持不变,因为 Web 服务器和缓存可能会更改标头或向 Web 请求添加标头。
- // Create a new 'HttpWebRequest' Object to the mentioned URL.
- HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
- // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
- HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
- Console.WriteLine("/nThe HttpHeaders are /n/n/tName/t/tValue/n{0}",myHttpWebRequest.Headers);
- // Print the HTML contents of the page to the console.
- Stream streamResponse=myHttpWebResponse.GetResponseStream();
- StreamReader streamRead = new StreamReader( streamResponse );
- Char[] readBuff = new Char[256];
- int count = streamRead.Read( readBuff, 0, 256 );
- Console.WriteLine("/nThe HTML contents of page the are : /n/n ");
- while (count > 0)
- {
- String outputData = new String(readBuff, 0, count);
- Console.Write(outputData);
- count = streamRead.Read(readBuff, 0, 256);
- }
- // Close the Stream object.
- streamResponse.Close();
- streamRead.Close();
- // Release the HttpWebResponse Resource.
- myHttpWebResponse.Close();
版权声明:本文为博主原创文章,未经博主允许不得转载。
场景是 winform程序通过HttpWebRequest 调用web Api 接口
其中参数没传过去,有做过这东西的,给点建议。
下面贴代码;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
/// <summary> /// 创建POST方式的HTTP请求 /// </summary> /// <param name="url">请求的URL</param> /// <param name="parameters">随同请求POST的参数名称及参数值字典</param> /// <param name="timeout">请求的超时时间</param> /// <param name="userAgent">请求的客户端浏览器信息,可以为空</param> /// <param name="requestEncoding">发送HTTP请求时所用的编码</param> /// <param name="cookies">随同HTTP请求发送的Cookie信息,如果不需要身份验证可以为空</param> /// <returns></returns> public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters, int? timeout, string userAgent, Encoding requestEncoding, CookieCollection cookies) { if (string.IsNullOrEmpty(url)) { throw new ArgumentNullException("url"); } if (requestEncoding == null) { throw new ArgumentNullException("requestEncoding"); } HttpWebRequest request = null; //如果是发送HTTPS请求 if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); request = WebRequest.Create(url) as HttpWebRequest; request.ProtocolVersion = HttpVersion.Version10; } else { request = WebRequest.Create(url) as HttpWebRequest; } request.Method = "POST"; request.Headers.Add("X_REG_CODE", "288a633ccc1"); request.Headers.Add("X_MACHINE_ID", "a306b7c51254cfc5e22c7ac0702cdf87"); request.Headers.Add("X_REG_SECRET", "de308301cf381bd4a37a184854035475d4c64946"); request.Headers.Add("X_STORE", "0001"); request.Headers.Add("X_BAY", "0001-01"); request.Headers.Add("X-Requested-With", "XMLHttpRequest"); request.ContentType = "application/x-www-form-urlencoded"; request.Headers.Add("Accept-Language", "zh-CN"); request.Headers.Add("Accept-Encoding", "gzip, deflate"); request.Accept = "*/*"; if (!string.IsNullOrEmpty(userAgent)) { request.UserAgent = userAgent; } else { request.UserAgent = DefaultUserAgent; } if (timeout.HasValue) { request.Timeout = timeout.Value; } // if (cookies != null) // { request.CookieContainer = new CookieContainer(); // request.CookieContainer.Add(cookies); // } //如果需要POST数据 if (!(parameters == null || parameters.Count == 0)) { StringBuilder buffer = new StringBuilder(); int i = 0; foreach (string key in parameters.Keys) { if (i > 0) { buffer.AppendFormat("&{0}={1}", key, parameters[key]); } else { buffer.AppendFormat("{0}={1}", key, parameters[key]); } i++; } byte[] data = requestEncoding.GetBytes(buffer.ToString()); using (Stream stream = request.GetRequestStream()) { stream.Write(data, 0, data.Length); } } HttpWebResponse res; try { res = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { res = (HttpWebResponse)ex.Response; } return res; } |
下面是调用代码
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
public string GetCookies() { string url = "http://localhost:17766/Account/LogOn"; IDictionary<string, string> parameters = new Dictionary<string, string>(); parameters.Add("StoreCode", "0001"); parameters.Add("UserName", "T00000"); parameters.Add("Password", "123456"); //string postData = "StoreCode=0001&UserName=T00000&Password=123456"; //HttpWebResponseUtility.PostData(postData, url, null); Encoding encoding = Encoding.GetEncoding("gb2312"); HttpWebResponse response = HttpWebResponseUtility.CreatePostHttpResponse(url, parameters, null, null, encoding, null); String xml = new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd(); return xml; } |
问题:request.Headers;结果:HttpWebRequest.Headers 属性的更多相关文章
- C# HTTP系列3 HttpWebRequest.ContentType属性
系列目录 [已更新最新开发文章,点击查看详细] 获取或设置请求的 Content-type HTTP 标头的值.默认值为null. 常见的请求内容类型为以下几种: /// <summar ...
- 在Assertion中获取Response的headers,获取headers中信息,获取body(content)
// get the headers of the requestdef content= messageExchange.getResponseContent()def headers = mes ...
- C# HTTP系列4 HttpWebRequest.CookieContainer属性
系列目录 [已更新最新开发文章,点击查看详细] HttpWebRequest.CookieContainer 获取或设置与此请求关联的 Cookie.默认情况下CookieContainer ...
- httpWebRequest.ContentType 属性、值 类型用法
httpWebRequest.ContentType 属性.值 类型用法 冰火战地 指定将数据回发到服务器时浏览器使用的编码类型.下边是说明: application/x-www-form-urlen ...
- HttpWebRequest.ReadWriteTimeout 属性
获取或设置写入或读取流时的超时. 属性值在写入超时或读取超时之前的毫秒数.默认值为 300,000 毫秒(5 分钟). 备注 在写入由 GetRequestStream 方法返回的流时,或在读取由 G ...
- request在作用域中管理属性
request在作用域中管理属性 制作人:全心全意 在作用域中管理属性 setAttribute(String name,Object object) name:表示变量名,为String类型,在转发 ...
- C# HTTP系列7 HttpWebRequest.Method属性
系列目录 [已更新最新开发文章,点击查看详细] HttpWebRequest.Method属性,获取或设置请求的方法.用于联系 Internet 资源的请求方法. 默认值为 GET. Syst ...
- HttpWebRequest.Method 属性
public static void GetHead(string url) { var http = (HttpWebRequest)WebRequest.Create(url); http.Met ...
- Request 对象 response 对象 常见属性
请求和响应 Express 应用使用回调函数的参数: request 和 response 对象来处理请求和响应的数据. app.get('/', function (req, res) { // - ...
随机推荐
- Power Designer体验之旅
版权声明:本文为博主原创文章.未经博主允许不得转载. https://blog.csdn.net/wang13667539325/article/details/36025245 从某种程度上说.不论 ...
- Office 2013“永久激活信息”备份
Office 2013“永久激活信息”备份还原简明教程及成功恢复的注意事项Office 2013永久激活后及时备份激活信息可以保证重装后快速激活.网上也有流行的各种备份工具,虽然操作简单,但是如果不理 ...
- [原创]java WEB学习笔记04:Servlet 简介及第一个Servlet程序(配置注册servlet,生命周期)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- 《python基础教程(第二版)》学习笔记 类和对象(第7章)
<python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person: def setName(self,name): self.name=n ...
- LINQ 学习路程 -- 查询操作 Distinct Except Intersect Union
Set Operators Usage Distinct 去掉集合的重复项 Except 返回两个集合的不同,第一个集合的元素不能出现在第二个集合中 Intersect 返回两个集合的交集,即元素同时 ...
- Qt之界面实现技巧-- 窗体显示,绘制背景,圆角,QSS样式
转自 --> http://blog.sina.com.cn/s/blog_a6fb6cc90101dech.html 总结一下,在开发Qt的过程中的一些技巧!可遇而不可求... 一.主界面 1 ...
- Hibernate和Struts分页查询
分页查询数据库方法 /** * 分页查询方法 * @param sql,pageNO,maxResult * @return List */ public List<Object> que ...
- Neutron Callback System
用于core and service components之间的通信,传递resource的lifecycle events (e.g. before creation, before deletio ...
- 兼容IE8及其他浏览器的回车事件
//阻止默认浏览器行为 function stopDefault(e) { //如果提供了事件对象,则这是一个非IE浏览器 if(e && e.preventDefault) { // ...
- php中session的配置
在 php.ini 中搜 session.save_path 查看session文件保存的目录;