0

我正在尝试使用 DefaultHttpClient 登录 xbox.com。我知道如果不访问http://login.live.com就无法登录,因此我将提交到该页面上的表单,然后在对 xbox.com 的任何请求中使用 cookie。

问题是使用 DefaultHttpClient 从 live.com 请求任何内容都会返回以下消息。

Windows Live ID 需要 JavaScript 才能登录。此 Web 浏览器不支持 JavaScript,或者脚本被阻止。

如何告诉 DefaultHttpClient 告诉服务器 javascript 可供使用?我尝试查看默认选项并将其添加为参数对象,但我看不到我必须做什么。

4

3 回答 3

0

使用Wireshark跟踪使用浏览器和您的程序的通信,并寻找差异。很难说 live.com/xbox.com 到底在寻找什么,但可能有一些 AJAX-y 代码用于获取实际内容。

于 2010-11-09T16:03:30.900 回答
0

发生这种情况的原因是这行 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 库,它不解析内容,而是简单地进行传输并将解析留给您。

于 2010-11-09T16:11:25.283 回答
0
Windows Live ID 需要 JavaScript 才能登录。此 Web 浏览器不支持 JavaScript,或者脚本被阻止。

要了解您的浏览器是否支持 JavaScript 或允许使用脚本,请参阅浏览器的在线帮助。
于 2013-02-25T07:55:26.400 回答