如何在Java中发出HTTP发布请求登录时获取cookie并将其发布

时间:2019-06-08 08:27:47

标签: java http networking cookies request

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

我首先在该登录网址上发出了get http请求,并尝试获取所有标头字段,但从那里我也没有得到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请求中进行登录

1 个答案:

答案 0 :(得分:0)

您可以按照以下方式进行操作。

如果仅发送一个cookie,则必须按照以下说明进行操作。

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

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

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