java - 如何在java中发出HTTP post请求登录时获取cookie并发布它

标签 java http networking cookies request

我正在尝试使用 HTTPURLConnection (java) 自动化登录过程,但是在发出 HTTP POST 请求时我还需要发布 cookie ..但是如何让 cookie 发布

我首先在该登录网址上发出了一个 get http 请求,并尝试获取所有 header 字段,但从那里我也没有获取 cookie

    HttpURLConnection urlConnection = null;

    try {

        urlConnection = (HttpURLConnection) instaL.openConnection();
        urlConnection.setRequestMethod("GET");
        urlConnection.setRequestProperty("Host","www.instagram.com");
        urlConnection.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0");
       urlConnection.setRequestProperty("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
       urlConnection.setRequestProperty("Accept-Language","en-US,en;q=0.5");
       urlConnection.setRequestProperty("Enocding","gzip, deflate, br");
       urlConnection.setRequestProperty("Connection","keep-alive");
       urlConnection.setRequestProperty("Upgrade-Insecure-Requests","1");

       urlConnection.connect();

        Map<String, List<String>> header = urlConnection.getHeaderFields();
        for (Map.Entry<String,List<String>> entry : header.entrySet()) {
            String key = entry.getKey();
            List<String> value = entry.getValue();
            System.out.println("-------------Key "+key);
            for (String string : value){
                System.out.println("value = "+value);
            }
        }


    } catch (Exception e) {
        System.out.println("Exception "+e.toString());
    }

}

我没有获取 cookie 如何获取它,以便我可以使用它并将其发布到 POST 请求中进行登录

最佳答案

您可以通过以下方式进行。

如果您只发送一个 cookie,则必须按照下面的说明进行操作。

String cookie = "cookieName=cookieValue";
urlConnection.setRequestProperty("Cookie", myCookie); 

如果您要发送多个 cookie,则必须这样做。

urlConnection.setRequestProperty("Cookie", "name1=value1; name2=value2");

关于java - 如何在java中发出HTTP post请求登录时获取cookie并发布它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56504763/

相关文章:

java - 如何将 org.w3c.dom.NodeList 与 Java 8 Stream API 一起使用?

java - 双向链表的小应用

java - Kafka主题以及本地数据库的Kafka偏移量管理

apache - 在没有 ServerName 的默认虚拟主机上将 HTTP 重定向到 HTTPS

Java - HttpUrlConnection 每次都返回缓存的响应

networking - 如何在没有端口映射的情况下将 docker 容器的 ip 和端口暴露给外部 docker 主机?

Java - 通过引用传递变量

c# - HTTP POST 返回错误 : 417 "Expectation Failed."

C编程使用特定的主机IP连接到服务器

linux - 以编程方式列出子网中的所有设备