首页 新闻 会员 周边

.NET Framework 3.5 怎么解决 HttpWebRequest.Date 。求大神挺急的 谢谢

0
悬赏园豆:50 [已解决问题] 解决于 2014-12-11 13:19

发现.NET Framework 3.5  等旧版本不支持 HttpWebRequest.Date ,但是我想修改Http 头部Date的值,怎么办,

不不点点的主页 不不点点 | 初学一级 | 园豆:65
提问于:2014-12-10 18:12
< >
分享
最佳答案
1

之前没有, 那就扩展一下啊。 

public static class HttpWebRequestExtensions
{
    static string[] RestrictedHeaders = new string[] {
            "Accept",
            "Connection",
            "Content-Length",
            "Content-Type",
            "Date",
            "Expect",
            "Host",
            "If-Modified-Since",
            "Range",
            "Referer",
            "Transfer-Encoding",
            "User-Agent", 
            "Proxy-Connection"
    };

    static Dictionary<string, PropertyInfo> HeaderProperties = new Dictionary<string, PropertyInfo>(StringComparer.OrdinalIgnoreCase);

    static HttpWebRequestExtensions()
    {
        Type type = typeof(HttpWebRequest);
        foreach (string header in RestrictedHeaders)
        {
            string propertyName = header.Replace("-", "");
            PropertyInfo headerProperty = type.GetProperty(propertyName);
            HeaderProperties[header] = headerProperty;
        }
    }

    public static void SetRawHeader(this HttpWebRequest request, string name, string value)
    {
        if (HeaderProperties.ContainsKey(name))
        {
            HeaderProperties[name].SetValue(request, value, null);
        }
        else
        {
            request.Headers[name] = value;
        }
    }
}

那就扩展一下。 

 

使用

HttpWebRequest request = WebRequest.Create("www.gaomn.com") as HttpWebRequest; request.SetRawHeader("Date", XXXXXXXXX);

收获园豆:50
问天何必 | 老鸟四级 |园豆:3311 | 2014-12-11 13:16
其他回答(2)
0

你可以使用 WebRequest   

学_无_止_境 | 园豆:217 (菜鸟二级) | 2014-12-10 19:12

WebRequest web = WebRequest.Create(url);
WebHeaderCollection webc = new WebHeaderCollection();
webc.Add("Date", dateGMT);
web.Headers = webc;

同学,这样写也是不允许的。

支持(0) 反对(0) 不不点点 | 园豆:65 (初学一级) | 2014-12-11 09:34
0

HttpClient

AshEs丶 | 园豆:251 (菜鸟二级) | 2014-12-11 11:45

.NET Framework 3.5  你告诉我用HttpClient?

支持(0) 反对(0) 不不点点 | 园豆:65 (初学一级) | 2014-12-11 11:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册