2010-11-09 55 views
0

我试图使用DefaultHttpClient登录到xbox.com。我意识到你不能在不访问http://login.live.com的情况下登录,所以我打算提交到该页面的表单,然后在任何请求xbox.com的情况下使用cookie。如何在使用DefaultHttpClient时将javascript设置为启用?

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

Windows Live ID需要JavaScript才能访问。该网站的免费浏览器不支持JavaScript,或者脚本被阻止。

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

回答

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

+1

谢谢。我没有发现无稿。实际上,当使用重定向处理程序发生重定向时,您可以告诉DefaultHttpClient该执行什么操作。我添加了一个处理程序,它像一个魅力。我可以看到登录表单,现在正在编写一些内容以提交表单请求和所有表单参数。任何有兴趣阻止redriect的人都可以看到它是如何完成的 - http://stackoverflow.com/questions/1352949/preventing-httpclient-4-from-follow-redirect – 2010-11-10 14:13:46

0

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

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

要确定您的浏览器是支持JavaScript还是允许脚本,请参阅浏览器的联机帮助。
相关问题