【问题标题】:dotNetBrowser: HTTP GET Response missing datadotNetBrowser:HTTP GET 响应缺少数据
【发布时间】:2020-03-26 12:31:22
【问题描述】:

我正在使用 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 处理程序也被调用了很多次。大多数时候,数据不是按顺序接收的。这也是个大问题。

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: json http response dotnetbrowser


    【解决方案1】:

    您可以考虑以下方法:

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

    在这种情况下,不需要以正确的顺序组装响应的各个部分。

    例如:

    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 与我们联系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多