2016-07-13 6 views
0

Я хочу проанализировать несколько веб-страниц для домашнего проекта. Обычно я использую c#HttpWebRequest и HttpWebResponse и его работу хорошо. Однако по некоторым причинам у меня нет одинаковых данных в моем HttpWebResponse, чем в fiddler по тому же запросу. Я использую сжатие gzip(rq.AutomaticDecompression = DecompressionMethods.GZip), иначе нет ничего особенного. Я думаю, что на веб-странице, которую я хочу разболеть, есть некоторые ajax и telerik (рад). Но почему у меня есть полная страница (800 строк) в fiddler и частичная страница (300 строк) в моем приложении C#.C# HttpResponse, отличный от Fiddler

Любая идея? ключ к разгадке?

+0

Что вы видите в HttpWebResponse, должно быть таким же, как скрипач (если вы смотрите только на один сеанс скрипача), если вы отправляете одинаковые запросы на сервер. Вы отправляете пользовательский агент и любые файлы cookie, которые вы могли бы отправить, когда вы делаете запрос в браузере? Можете ли вы добавить некоторые снимки экрана и указать различия? –

+0

Трудно добавить полезную скриншоту. Я проверил вызов в скрипде, выполненном моим приложением (а не тем из браузера). Если я сравниваю содержимое своей строки C# и вкладки textview fiddler, у меня нет такой же информации. У меня это была декомпрессия, но без gzip я не могу читать поток. –

+0

Необработанные байты вашего HttpWebResponse и необработанные байты, передаваемые через скрипач, будут идентичны, если вы не обнаружили ошибку в скрипаче, но это маловероятно. Не возражаете ли вы использовать URL-адрес, который вы запрашиваете в своем приложении? –

ответ

0

Я собираюсь взять удар.

В коде вы не получите полный ответ, потому что он не отображает все Javascript и другие связанные ресурсы. С скрипачом вы видите полный отклик в нем полностью.

Теперь, что вы можете сделать, это использовать безгласный браузер, а некоторые из них - селен, Phanthomjs. У них есть возможность подождать, пока вся страница будет отображаться, вы также можете увидеть полную трассировку стека, которую вы не можете сделать на C# так, как вы ее используете.

Они доступны через NuGet

+0

Я попробую. Я пробовал с HtmlAgilityPack, но я получил тот же результат. –

+0

HTMLAgilityPack не является браузером без браузера (он просто берет то, что вы передаете ему) – Henry

0

ОК, это получится, что я обновил свой VS2015 с последней версией (обновление 3), и я получаю хороший результат (полную страницу, идентичную как мой ответ Скрипач) .. Я не знаю почему, даже не уверен, что это не проблема с перезагрузкой. Тот же код .. то же .net framework .. в любом случае .. проблема решена.

 Смежные вопросы

  • Нет связанных вопросов^_^