.net 使用WebClient.UploadValues()模拟页面发布
我使用下面的代码来模拟一个页面帖子。(我正在子类化.net 使用WebClient.UploadValues()模拟页面发布,.net,http,httpwebrequest,webclient,.net,Http,Httpwebrequest,Webclient,我使用下面的代码来模拟一个页面帖子。(我正在子类化WebClient,以便扩展一些受保护的成员。) 这段代码很简单,但我有两个问题: 我知道如果出现错误,我会得到一个异常,但我认为使用非成功HTTP状态代码的结果仍然是可能的。有没有一种不需要解析结果就可以获取这些状态代码的方法 此外,我还需要添加一些标题,使其看起来像一篇真正的页面文章。有没有这样做的好例子以及我需要添加的标题类型 表单帖子所需的唯一请求头是“内容类型:x-www-FORM-urlencoded” 此外,WebClient将为所
WebClient
,以便扩展一些受保护的成员。)
这段代码很简单,但我有两个问题:
表单帖子所需的唯一请求头是“内容类型:x-www-FORM-urlencoded”
此外,WebClient将为所有HTTP状态代码引发异常!=2xx(即成功),所以你在这里应该没问题。您只需要捕获WebException并查看e.Status==WebExceptionStatus.ProtocolError。如果是这种情况,您可以从异常对象(例如响应)获取HttpWebResponse对象,并对其执行任何操作。谢谢,但我现在正在设置内容类型标题,但返回的HTML内容指示错误。(
(14)推荐人、中继响应或接收链接URL无效。
)
public class AuthorizeNetClient : WebClient
{
public string PostData(string url, FormCollection formData)
{
byte[] response = UploadValues(url, formData);
return Encoding.ASCII.GetString(response);
}
}