如何在 Java 中的 URLConnection 后登录站点?

How can I login to site after URLConnection in Java?

如何在 Java 中的 URLConnection 后登录站点?

我正在以这种方式进行 URLConnection:

URL url = new URL("https://www.linkedin.com/in/williamhgates");
URLConnection urlConnection = url.openConnection();
Scanner scanner = new Scanner(new InputStreamReader(urlConnection.getInputStream()));
while (scanner.hasNext())
    System.out.println(scanner.nextLine());

连接后我收到一个欢迎页面,但我需要“https://www.linkedin.com/in/williamhgates”。

更新: 获取我正在使用的 cookie:

String cookie = urlConnection.getHeaderFields().get("Set-Cookie").get(0);

您需要通过 oauth. You can use almost any http library to connect, but I would recommend using scribe 登录以进行身份​​验证,因为它内置了 Linked In 绑定。

How can I receive a cookie?

        connection.getHeaderFields();

查看输出并查找 Set-Cookie header。之后应该有 GUID = .... 那是你的 cookie。

获得 cookie 并将其存储在某处后,"send" 您的 cookie 使用的网站的最简单方法是:

        connection.setRequestProperty("Cookie", cookie);

cookie 是一个字符串。

在您的浏览器上使用 HTTP 侦听器插件并以这种方式连接到该网站。 https://gyazo.com/789db4f2ccb90d97516663de4ad1c6fa

有了这些知识,您只需重复浏览器在您的应用中执行的操作即可。喜欢:

 connection.setRequestProperty(*Request header*,*value of request header*);

您无法发送浏览器的 cookie。