如何使用 WebClient 从网页获取异步 post 数据?
How can I get asynchronous post data from a webpage with WebClient?
我正在阅读的一个网站,加载后 WebClient
returns 一个 JSON 对象。我可以按网站上的按钮启动异步 postback,然后返回 JSON 对象:
当我尝试 post 与 JSON 数据相同的 URL 时,我得到了完整的 post 返回并且返回了整个页面,而不是只是 JSON 数据。
我的代码很简单:
using (WebClient client = new WebClient()) {
System.Collections.Specialized.NameValueCollection reqparm = new System.Collections.Specialized.NameValueCollection();
reqparm.Add("limit", "1000");
byte[] responsebytes = client.UploadValues("https://somewebsite.org/doe/search/resultData", "POST", reqparm);
string responsebody = Encoding.UTF8.GetString(responsebytes);
}
很可能发送的回发带有适当的 headers,包括 cookie 以帮助服务器识别它是回发的事实。您的简单 WebClient
代码不遵循此方案,因此服务器会发送整页响应。
我正在阅读的一个网站,加载后 WebClient
returns 一个 JSON 对象。我可以按网站上的按钮启动异步 postback,然后返回 JSON 对象:
当我尝试 post 与 JSON 数据相同的 URL 时,我得到了完整的 post 返回并且返回了整个页面,而不是只是 JSON 数据。
我的代码很简单:
using (WebClient client = new WebClient()) {
System.Collections.Specialized.NameValueCollection reqparm = new System.Collections.Specialized.NameValueCollection();
reqparm.Add("limit", "1000");
byte[] responsebytes = client.UploadValues("https://somewebsite.org/doe/search/resultData", "POST", reqparm);
string responsebody = Encoding.UTF8.GetString(responsebytes);
}
很可能发送的回发带有适当的 headers,包括 cookie 以帮助服务器识别它是回发的事实。您的简单 WebClient
代码不遵循此方案,因此服务器会发送整页响应。