dotNetBrowser:HTTP GET 响应缺少数据

dotNetBrowser: HTTP GET Response missing data

我正在使用 HTTP GET-Response 检索大型 JSON 数据。按照我在此处找到的文档:(https://dotnetbrowser-support.teamdev.com/docs/guides/gs/network.html#network-events-&-handlers),我能够在每个请求中使用 ResponseBytesReceived 接收大约 80% 的数据。我知道我的 HTTP 服务器工作正常,因为我可以获得 Google Chrome 中的所有数据。使用 Microsoft .Net HttpWebRequest/GetResponse API,我也可以获得所有数据。

因为我的JSON数据比较大,所以我看到数据分很多批进来,ResponseBytesReceived handler也被调用了很多次。大多数时候,数据不是按顺序接收的。这也是个大问题。

如有任何帮助,我们将不胜感激。谢谢。

您可以考虑以下方法:

  1. 通过LoadUrl()方法加载URL;
  2. 等待页面加载完成;
  3. 通过 DotNetBrowser DOM 从加载的 HTML 中提取 JSON API.

在这种情况下,不需要assemble响应的各个部分按正确的顺序排列。

例如:

Browser.Navigation.LoadUrl("http://httpbin.org/headers").Wait();

//Get JSON string from the loaded page
string responseJson = Browser.MainFrame.Document.GetElementByTagName("pre")?.InnerText;
//Parse it to IJsObject
IJsObject jsonObject = Browser.MainFrame.ParseJsonString<IJsObject>(responseJson);
// Access object properties
string headerValue = ((IJsObject)jsonObject.Properties["headers"]).Properties["Accept-Language"].ToString();

如有任何其他问题,请随时通过 customer-care@teamdev.com 与我们联系。