如何使用java对HTTP服务器进行授权
我手动执行的操作:如何使用java对HTTP服务器进行授权,java,http,Java,Http,我手动执行的操作: 我打开URL:输入登录名和密码 然后单击按钮,它实际上是执行http get请求: 我在java中的工作: String addr = "http://localhost:8080/rest/platform/domain/list?_dc=1325843792402"; //"http://localhost:8080/webadmin/index.html"; URL url = new URL(addr); HttpURLConnection httpCon = (H
String addr = "http://localhost:8080/rest/platform/domain/list?_dc=1325843792402"; //"http://localhost:8080/webadmin/index.html";
URL url = new URL(addr);
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setDoOutput(true);
httpCon.setDoInput(true);
httpCon.setUseCaches(false);
httpCon.setAllowUserInteraction(false);
httpCon.setRequestMethod("GET");
OutputStreamWriter out = new OutputStreamWriter(httpCon.getOutputStream());
System.out.println(httpCon.getResponseCode());
System.out.println(httpCon.getResponseMessage());
out.close();
并获得响应:401未经授权
原因可以理解:我应该通过输入登录名和密码来创建授权连接。但我怎么能做到这一点呢 这取决于身份验证方案。有几种可能性,包括
WWW-Authenticate
HTTP头
要在Java中执行HTTP身份验证,请参阅其中包含大量有用信息。关于使用网页中的表单字段进行身份验证,会发生以下情况:
- 会话cookie,出现在HTTP响应头中。您应该存储此cookie,然后重新发送
- 重定向到标记会话的新URL(http://localhost:8080/?sessionKey=3292n9fafjwagwao2903j2fswioanw)
- (有时)隐藏的HTML表单或Javascript变量,其中包含会话键,并在每次单击链接时发布
- 你收到的饼干
- 在POST数据中输入您的用户名和密码
当然,还有其他在Web服务器级别对用户进行身份验证的方法(HTTP基本身份验证、NTLM…,如本文其他答案所述)。上述方法仅适用于基于HTML表单的身份验证(Facebook、Dropbox…和几乎所有主要网站都使用)Manish的副本,谢谢,您的评论对我很有帮助。如果您使用firefox,请使用
Live HTTP Headers::Add-ons for firefox