使用DefaultHttpClient时,如何将javascript设置为已启用?
我正在尝试使用DefaultHttpClient登录xbox.com。我意识到你不能不访问就登录,所以我打算提交到该页面上的表单,然后在xbox.com的任何请求中使用cookies 问题是使用DefaultHttpClient从live.com请求任何内容都会返回以下消息使用DefaultHttpClient时,如何将javascript设置为已启用?,java,apache-commons-httpclient,Java,Apache Commons Httpclient,我正在尝试使用DefaultHttpClient登录xbox.com。我意识到你不能不访问就登录,所以我打算提交到该页面上的表单,然后在xbox.com的任何请求中使用cookies 问题是使用DefaultHttpClient从live.com请求任何内容都会返回以下消息 Windows Live ID需要JavaScript才能登录。此web浏览器不支持JavaScript,或者脚本被阻止 如何告诉DefaultHttpClient告诉服务器可以使用javascript?我尝试查看默认选项,
Windows Live ID需要JavaScript才能登录。此web浏览器不支持JavaScript,或者脚本被阻止
如何告诉DefaultHttpClient告诉服务器可以使用javascript?我尝试查看默认选项,并将其添加为参数对象,但我看不出我要做什么。使用浏览器和程序跟踪通信,并查找差异。很难说live.com/xbox.com到底在寻找什么,但可能有一些AJAX-y代码用于获取实际内容。发生这种情况的原因是这行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,那么它将用于重定向您,因此将解析标记
您可以尝试使用智能程度较低的HTTP库,该库不解析内容,而只是进行传输并将解析留给您。Windows Live ID需要JavaScript登录。此web浏览器不支持JavaScript,或者脚本被阻止。若要了解您的浏览器是否支持JavaScript,或者是否允许脚本,请参阅浏览器的联机帮助。谢谢。我没有发现noscript。实际上,您可以使用重定向处理程序告诉DefaultHttpClient在发生重定向时应该做什么。我添加了一个处理程序,它就像一个符咒。我可以看到登录表单,现在正在编写一些代码,以提交包含所有表单的表单请求。任何有兴趣阻止redriect的人都可以在这里看到它是如何完成的-