dotNetBrowser: в ответе HTTP GET отсутствуют данные - PullRequest
0 голосов
/ 26 марта 2020

Я использую HTTP GET-Response для извлечения больших JSON данных. После документа, который я нашел здесь: (https://dotnetbrowser-support.teamdev.com/docs/guides/gs/network.html#network -events - & - handlers ), я могу получить около 80% данных с ResponseBytesReceived в каждом запросе. Я знаю, что мой HTTP-сервер работает нормально, потому что я могу получить все данные в Google Chrome. Используя Microsoft. Net HttpWebRequest / GetResponse API, я также могу получить все данные.

Поскольку мои JSON данные относительно большие, я вижу, что данные поступают во многих пакетах, и обработчик ResponseBytesReceived также звонил много раз. В большинстве случаев данные не принимаются по порядку. Это также большая проблема.

Любая помощь будет принята с благодарностью. Спасибо.

1 Ответ

1 голос
/ 03 апреля 2020

Вместо этого можно рассмотреть следующий подход:

  1. Загрузить URL-адрес с помощью метода LoadUrl();
  2. Дождаться завершения загрузки страницы;
  3. Извлечь JSON из загруженного HTML через DOM API DotNetBrowser.

В этом случае нет необходимости собирать части ответа в правильном порядке.

Для пример:

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.

...