我正在尝试与需要Web请求中的“Date”标头的API集成。您可能知道,.NET已经删除了在您的请求中追加甚至显示默认日期标题的功能,因此我想知道一种解决方法。
这里有一个问题:你不能使用TCPClients,因为我的服务器上没有套接字这样的“权限”。有没有办法“欺骗”系统伪造日期标题或欺骗它发布Date标题?或者我应该放弃这个API?
...谢谢
(PS,如果你愿意,语言是VB.NET :))
答案 0 :(得分:1)
我找到了日期问题的答案,你只需要直接作为HttpWebRequest访问请求。这似乎是一个简单的答案,但它确实有效。
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Uri) ;
request.Date = date;
request.Method = "POST";
答案 1 :(得分:0)
根据文档,系统将添加一个Date标头,其中包含当前日期和时间。你需要一个不同的标题值吗?
您可以使用request.Headers.AddWithoutValidate添加它。
答案 2 :(得分:0)
这不是世界上最快的代码,但它可能会工作一段时间:
Type type = request.Headers.GetType();
MethodInfo method = type.GetMethod("AddWithoutValidate",
BindingFlags.Instance | BindingFlags.NonPublic);
method.Invoke(request.Headers, new [] { "Date", DateTime.Now.ToString() })
请注意,使用反射来访问私有或受保护的成员是非常脆弱的,并且可能会破坏MS所做的任何.NET更新......