使用Java中的现有浏览器会话的HTTPS GET请求

时间:2018-06-06 07:11:20

标签: java https get

我有一个用例,我有一组受密码保护的HTTPS GET请求,我想访问请求正文,但不是每次都通过用户名/密码,而是使用我的Chrome浏览器会话。

以下是我每次提供我的凭据时创建新的HTTP连接的尝试方法,这种方式不可建议且速度慢。

String url = "<Request URL>";
URL obj = new URL(url);

String encoding = Base64.getEncoder().encodeToString(("<username>:<password>").getBytes());
System.out.println("Encoded Credential String:==>"+encoding);

HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setDoOutput(true);
con.setRequestProperty  ("Authorization", "Basic " + encoding);

System.out.println("Response connection string: "+con.toString());

BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();

//print result
System.out.println(response.toString());

有人可以向我提供指示,如果我的实施是Java,我该怎么办?

1 个答案:

答案 0 :(得分:0)

在任何意义上,使用基本身份验证实际上并没有任何“慢”。

但是,如果您想使用 cookie,那么您可以这样做

urlConn.setRequestProperty("Cookie", "cookiename=cookievalue");

而不是您当前拥有的 Authorization 标头。这是假设您知道要发送的 cookie 名称和值。您可以检查 Chrome HTTP 流量以获取该信息。