我正在尝试使用WebClient模拟一个帖子请求;但是,当使用Firefox登录并使用firebug调试请求时,我发现在POST请求之后它会自动执行一些GET请求,而在使用我的代码时只执行POST请求
我的代码
//Handler is an overridden WebClient Class
private async Task<byte[]> Post(string uri, string[] data)
{
var postData = new NameValueCollection();
foreach (var info in data.Select(var => var.Split('=')))
{
postData.Add(info[0], info[1]);
}
return await Handler.UploadValuesTaskAsync(new Uri(uri), postData);
}
答案 0 :(得分:1)
我知道这不是你要求的,而是它在VB中,但希望它可以帮助你指明正确的方向。这是我用来在我们的一个网站上发布帖子的请求。它适用于模拟POST数据,希望您可以将其中的一部分合并到您正在做的事情中。
Dim postData As String = String.Format("RedirectLocation=RequestMethod=&username={0}&password={1}", _username, _password)
Dim _loginRequest As HttpWebRequest = WebRequest.Create(loginurl)
With _loginRequest
.Method = "POST"
.ContentLength = postData.Length
.ContentType = "application/x-www-form-urlencoded"
.KeepAlive = True
.AllowAutoRedirect = False
.CookieContainer = New CookieContainer
Using writer As New StreamWriter(.GetRequestStream)
writer.Write(postData)
End Using
.Timeout = tsTimeOut.TotalMilliseconds
_loginResponse = .GetResponse()
End With