C#如何更改request header的date?

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address.Text);
request.Headers.Set(HttpRequestHeader.Date.ToString(), " Sat, 26 Nov 2099 08:03:22 GMT");
request.Headers.Set(“Date”, " Sat, 26 Nov 2099 08:03:22 GMT");

都不行啊

错误:此标头必须使用适当的属性进行修改。 参数名: name

request.Date,,,visual studio 2015 表示没有这个属性!(框架设置为.NET2.0)

阅读 8k
1 个回答

2.0用的,只能说,反射大法好

public static void CallPrivateMethod(object instance, string name, params object[] param)
{
    BindingFlags flag = BindingFlags.Instance | BindingFlags.NonPublic;
    Type type = instance.GetType();
    MethodInfo method = type.GetMethod(name, flag);
    method.Invoke(instance, param);
}

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address.Text);
CallPrivateMethod(request, "SetSpecialHeaders", "Date", DateTime.Now.ToString("R"));

===============

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address.Text);
request.Date = DateTime.Now;  // 换成你需要的DateTime对象

我是2017RC 另外,这个是跟着.NET Framework 版本走的,至少4.0及以后是有这个属性的

VS 2017 RC

MSDN上的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题