如何使用 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 代码不遵循此方案,因此服务器会发送整页响应。