java从请求中获取cookie和发送带有cookie的请求

java中发送请求的两个问题,发送请求并且将返回的cookie进行提取;

       public static String sendPostGetCookie(String urlPath, String body) throws Exception {
    
    
            OutputStreamWriter out = null;
            String headerField = "";
            try {
    
    
                URL url = new URL(urlPath);
                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                conn.setRequestMethod("POST");
                // 发送POST请求必须设置为true
                conn.setDoOutput(true);
                conn.setDoInput(true);
                //设置连接超时时间和读取超时时间
                conn.setConnectTimeout(10000);
                conn.setReadTimeout(10000);
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                out = new OutputStreamWriter(conn.getOutputStream());
                // POST的请求参数写在正文中
                out.write("name=张三&");
                out.write("password=5201314&");
                out.flush();
                out.close();
                headerField = conn.getHeaderField("set-cookie");
            } catch (Exception e) {
    
    
                e.printStackTrace();
            }
            return headerField.split(";")[0].split("=")[1];
        }

在发送HTTP请求的时候装入cookie和boody

 public static String sendPostByCookie(String url, String body, String cookies) throws Exception {
    
    
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost(url);
        httpPost.addHeader("Content-Type", "application/json");
        //写入cookie
        httpPost.addHeader(HttpHeaders.COOKIE, "cookieName=" + cookies);
        //写入body
        httpPost.setEntity(new StringEntity(body, Consts.UTF_8));
        //执行请求
        CloseableHttpResponse response = httpClient.execute(httpPost);
        System.out.println(response.toString());
        HttpEntity entity = response.getEntity();
        String responseContent = EntityUtils.toString(entity, Consts.UTF_8);
        response.close();
        httpClient.close();
        return responseContent;
    }

猜你喜欢

转载自blog.csdn.net/weixin_49260016/article/details/119530790