Как установить JavaScript как включенный при использовании DefaulthttpClient?
-
30-09-2019 - |
Вопрос
Я пытаюсь использовать DefaulthttpClient для входа в xbox.com. Я понимаю, что вас нельзя войти в систему без посещения http://login.live.com, Поэтому я собирался отправиться в форму на этой странице, а затем использовать файлы cookie в любых запросах на xbox.com.
Проблема заключается в том, что запрашивать что -либо от Live.com, используя DefaulthttpClient, возвращает сообщение о последующем.
Windows Live ID требует, чтобы JavaScript входил в систему. Этот веб -браузер либо не поддерживает JavaScript, либо сценарии блокируются.
Как я могу сказать Defaulthttpclient сообщить серверу, что JavaScript доступен для использования? Я попытался посмотреть в параметрах по умолчанию, а также добавить его в качестве объекта параметров, но я не вижу, что мне нужно сделать.
Решение
Причина, по которой это происходит, заключается в том, что эта линия HTML анализируется от Live:
<noscript><meta http-equiv="Refresh" content="0; URL=http://login.live.com/jsDisabled.srf?mkt=EN-US&lc=1033"/>Windows Live ID requires JavaScript to sign in. This web browser either does not support JavaScript, or scripts are being blocked.<br /><br />To find out whether your browser supports JavaScript, or to allow scripts, see the browser's online help.</noscript>
Который используется для перенаправления вас, если ваш клиент не включен JavaScript (и, следовательно, будет анализироваться <noscript>
теги.)
Вы можете попытаться использовать менее интеллектуальную HTTP -библиотеку, которая не проанализирует контент, но вместо этого просто делает транспорт и оставляет вам анализ.
Другие советы
Использовать Вирешарк Чтобы проследить общение, используя как браузер, так и вашу программу, и искать различия. Трудно сказать, что именно ищет live.com/xbox.com, но, вероятно, есть какой-то код Ajax-y, используемый для получения фактического контента.
Чтобы выяснить, поддерживает ли ваш браузер JavaScript или для разрешения сценариев, см. Онлайн -помощь браузера.