首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用java授权到HTTP服务器

如何使用java授权到HTTP服务器
EN

Stack Overflow用户
提问于 2012-01-06 10:31:53
回答 2查看 2.2K关注 0票数 0

我手动做的事:

  1. 我打开URL:http://localhost:8080/webadmin/index.html,输入登录和密码。
  2. 并单击按钮wich确实是做http获取请求:http://localhost:8080/rest/platform/domain/list

我用java做的事情:

代码语言:javascript
复制
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 Unauthorized

可以理解的原因:我应该创建一个授权的连接,通过输入一个登录和密码。但我怎么能做到呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-06 10:44:56

在使用网页中的表单字段进行身份验证时,会发生以下情况:

  1. 您访问一个登录页面。服务器使用下列方法之一标记会话:
    • 会话cookie,出现在HTTP响应头中。你应该储存这个曲奇,然后再重发它。
    • 重定向到标记会话的新URL (http://localhost:8080/?sessionKey=3292n9fafjwagwao2903j2fswioanw)
    • (有时)隐藏的HTML表单或Javascript变量,它包含会话键,并且在链接的每次单击时都会发布。

  1. 让我们假设服务器使用cookie。然后执行包含:的POST请求
    • 你收到的饼干。
    • 在POST数据中的用户名和密码

  1. 服务器现在将您的会话标记为“登录”,甚至可能为您提供一个新的或额外的会话标识符。
  2. 然后访问受保护的资源,提供一个会话标识符,以证明您已登录。

您可以很好地使用视图来跟踪这个过程(按CTRL+SHIFT+J,转到Network.com)。

如何将其转换为Java代码?

  1. 对登录页面执行初始请求。从HTTP头恢复会话cookie。
  2. 向登录表单目的地发送帖子。在HTTP请求头中包含会话cookie,在POST数据中包含用户名/密码。从HTTP头恢复会话cookie。
  3. 现在访问受保护的资源。在HTTP请求头中包含会话cookie。

当然,还有在here服务器级别对用户进行身份验证的其他方法(HTTP基本身份验证,NTLM.),如这里的其他答案所解释的那样。以上方法仅适用于基于HTML表单的身份验证(如Facebook、Dropbox、.以及几乎所有的主要网站)

票数 1
EN

Stack Overflow用户

发布于 2012-01-06 10:42:18

这取决于身份验证方案。有几种可能性,包括

服务器将在401答案中告诉您正确的方案。在答案中查找WWW-Authenticate header。

要在Java中执行HTTP身份验证,请参阅本教程,它包含了许多有用的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8756445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档