0

有谁知道在 Windows Phone 8 上的 HTTP GET 请求中设置或读取“日期”HTTP 标头的方法?

我需要能够设置 Date 标头的值,或者至少读取将在请求中实际发送的值。

我尝试过类似的东西:

var web_request = HttpWebRequest.CreateHttp(url);
web_request.Headers["Date"] = the_date;

但这会在运行时产生异常: System.ArgumentException: 'Date' 标头必须使用适当的属性或方法进行修改。

这里有 HttpClient 的示例代码,但这显然在 Windows Phone 8 下不可用: How do you set the Content-Type header for an HttpClient request?

我也尝试过阅读日期,但之后:

var web_request = HttpWebRequest.CreateHttp(url);

日期似乎还没有确定。

4

4 回答 4

2

添加“Microsoft HTTP 客户端库”后效果很好。但是,WindowsPhone 平台上的这个库仍然存在问题。

问题:

我有一个场景,我想以特定格式添加“日期”标题,所以我使用了

字符串 customDate = "11/29/2013 7:46:25"

DefaultRequestHeaders.TryAddWithoutValidation("Date", customDate);

上面的行添加了“Date”标头,这意味着它不会引发任何异常,但是当我签入 fidler 时,没有添加“Date”标头。相同的代码在 Windows8 商店应用程序中运行良好。

WindowsPhone8 平台的“Microsoft HTTP 客户端库”中似乎存在错误。

于 2013-11-29T12:16:06.533 回答
1

By using "Microsoft HTTP Client Libraries" for Date header works well and good if Date is of DateTime object, however if i want to assign a value to Date header in a specific format as mentioned in earlier post then it does not get added.

于 2013-12-02T04:28:20.640 回答
0

它是一个具有内置支持的标头,您需要显式设置/获取;

web_request.Date = DateTime.UtcNow;

(默认是01/01/0001 00:00:00请求中不发送的)

于 2013-07-31T17:10:23.020 回答
0

问题在于:

web_request.Date

是在 Windows Phone 8 版本的 HttpWebRequest 中没有“日期”属性。请参阅:http ://social.msdn.microsoft.com/Forums/windowsapps/en-US/5738e95a-5afe-4a49-929d-b51490a5480b/httpwebrequest-date-property-missing

在此链接中,建议使用 HttpClient 和 HttpRequestMessage。例子:

HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Date = DateTime.Now.Subtract(new TimeSpan(10, 0, 0));
HttpResponseMessage response = client.SendAsync(request).Result;
string resultCode = response.StatusCode.ToString();

我被卡住了,因为 HttpClient 和 HttpRequestMessage 似乎也不适用于 Windows Phone 8。但可以添加它们:

在适用于 Windows Phone 的 Visual Studio (Express) 2012 中:工具 -> 库包管理器 -> 管理 NuGet 包以用于解决方案...

然后搜索“Microsoft HTTP Client Libraries”并安装它。之后 System.Net.Http 可用并且可以使用 HttpClient 解决方案。

于 2013-08-01T13:25:22.353 回答