首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows 7中的WebRequest上设置http标头?

如何在Windows 7中的WebRequest上设置http标头?
EN

Stack Overflow用户
提问于 2011-01-25 15:34:55
回答 4查看 2.7K关注 0票数 1

尝试在wp7中设置“如果-修改-自”标头:

代码语言:javascript
复制
request.Headers[HttpRequestHeader.IfModifiedSince] = dateString;

给出错误:

必须使用适当的属性修改此标头。

这意味着应在请求类上使用属性.IsModifiedSince,如MSDN:http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.ifmodifiedsince.aspx中所述。

但是这个属性并不存在于Silverlight,即WP7中。

是否有人能够为Windows 7?上的http请求设置此标头

Shawn早在2010年9月就发布了这个问题,但没有解决方案:http://social.msdn.microsoft.com/Forums/en/windowsphone7series/thread/8aec7481-2cf3-4047-b0d4-05d4313a9e4c

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2011-01-25 15:51:18

您只需使用HttpRequestHeader.IfModifiedSince表示的字符串:

代码语言:javascript
复制
request.Headers["If-Modified-Since"] = dateString; 

我不得不使用许多其他的标头来完成这些操作,而WP7并不公开用于设置的帮助方法。

更新

根据http://msdn.microsoft.com/en-us/library/8y7x3zz2(v=VS.95).aspx上的注释,似乎不可能在WP7中设置此标头。

作为另一种选择,您可以创建自己的代理服务器来处理应用程序的缓存。

票数 3
EN

Stack Overflow用户

发布于 2012-09-26 09:32:30

这只能在HTTPWebRequest对象上设置,因此转换WebRequest应该允许您设置属性例如:

代码语言:javascript
复制
((HttpWebRequest)request).IfModifiedSince = modifiedDate;

它接受一个DateTime对象,因此您可能需要先解析字符串。

票数 1
EN

Stack Overflow用户

发布于 2011-03-01 07:14:10

简单的回答是:这是不可能的,而不是支持的。

正如Matt所说,解决方案是创建一个代理类来处理这个问题。

那个代理会设置

代码语言:javascript
复制
request.AllowStreamReadBuffering = false;

然后解析响应,直到标题结束或找到标头值为止。

注意!此解决方案限制下载到电话的数据,但不限制服务器处理请求所需的工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4795396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档