使用DefaultHttpClient时如何将javascript设置为启用?

时间:2010-11-09 15:41:47

标签: java apache-commons-httpclient

我试图使用DefaultHttpClient登录xbox.com。我意识到你不能在没有访问http://login.live.com的情况下登录,所以我将提交到该页面上的表单,然后在任何对xbox.com的请求中使用cookie。

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

  

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

如何告诉DefaultHttpClient告诉服务器javascript是否可用?我尝试查看默认选项,并将其添加为参数对象,但我无法看到我必须做的事情。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

发生这种情况的原因是这行HTML正在从实时解析:

<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库,该库不会对内容进行解析,而是简单地执行传输并将解析留给您。

答案 2 :(得分:0)

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

要了解您的浏览器是支持JavaScript还是允许脚本,请查看浏览器的在线状态救命。