HttpWebRequest descendant
本文关键字:descendant HttpWebRequest | 更新日期: 2023-09-27 18:18:11
我试图使用而不是通常的HttpWebRequest
// get a login page
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.facebook.com/");
我配置的类FacebookHttpWebRequest
,看起来像这样:
// get a login page
FacebookHttpWebRequest req = (FacebookHttpWebRequest)WebRequest.Create("http://www.facebook.com/");
下面是配置好的类实现
class FacebookHttpWebRequest : HttpWebRequest
{
public FacebookHttpWebRequest() : base()
{
this.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1";
this.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
}
}
但是出现错误错误
的System.Net。HttpWebRequest'不包含一个构造函数接受0个参数
实际上需要两个参数:serializationInfo
和streamingContext
。
那么我怎样才能制作自己的HttpWebRequest
后代呢?我知道我可以使用特殊的方法来配置通常的HttpWebRequest
,但它会更优雅,有一个特殊的类。
您不需要继承。只需在您自己的工厂中包装创建登录:
static class FacebookWebRequestFactory {
public static HttpWebRequest Create() {
var req = (HttpWebRequest)WebRequest.Create("http://www.facebook.com/");
req.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1";
req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
return req;
}
}
像这样使用:
var req = FacebookWebRequestFactory.Create();