httpClient4.5.12,传递Cookie

 

方式一,通过HttpClientContext 传递cookie

package com.httpclient;

import org.apache.http.HttpEntity;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.util.EntityUtils;

import java.io.IOException;


// httpGet
public class TestCookie5 {
    public static void main(String[] args) throws IOException {
        CloseableHttpClient closeableHttpClient =null;
        try {
            CookieStore cookieStore = new BasicCookieStore();
            BasicClientCookie cookie = new BasicClientCookie( "JSESSIONID","E40C177615A2C5AA98DAAE3226E4FF03" );
            cookie.setVersion( 0 );
            cookie.setDomain( "192.168.31.193" );
            cookie.setPath( "/consumer" );

            cookieStore.addCookie( cookie );

            closeableHttpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet( "http://192.168.31.193:8080/consumer/menu.do" );
            System.out.println( httpGet.getRequestLine());
            CloseableHttpResponse httpResponse =null;
            try {
                HttpClientContext localContext = HttpClientContext.create();// 通过HttpClientContext 传递Cookie
                localContext.setCookieStore( cookieStore );
                // 执行get
                httpResponse = closeableHttpClient.execute( httpGet,localContext );
                //获取响应实体
                HttpEntity entity = httpResponse.getEntity();
                //响应状态
                System.out.println(httpResponse.getStatusLine());
                if(entity!=null){
                    System.out.println(EntityUtils.toString( entity,"utf-8" ));
                }
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                httpResponse.close();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            closeableHttpClient.close();
        }
    }
}

  

方式二,通过cookieStore 传递cookie

package com.httpclient;

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.CookieStore;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

// httpPost ,Ok
public class TestCookie6 {

    public static void main(String[] args) throws IOException {
        CloseableHttpClient closeableHttpClient =null;
        try {
            CookieStore cookieStore = new BasicCookieStore();
            BasicClientCookie cookie = new BasicClientCookie( "JSESSIONID","93DAA2B26DE595BE1936DBCBAF52DD1B" );
            cookie.setVersion( 0 );
            cookie.setDomain( "172.16.87.74" );
            cookie.setPath( "/consumer" );

            cookieStore.addCookie( cookie );

            closeableHttpClient = HttpClients.custom()
                    .setDefaultCookieStore( cookieStore )
                    .build();
            //HttpGet httpGet = new HttpGet( "http://172.16.87.74:8080/consumer/menu.do" );
            HttpPost httpPost = new HttpPost( "http://172.16.87.74:8080/consumer/repFileAction.do?method=exportTemplate" ) ;
            List<NameValuePair> list = new ArrayList<>(  );
            list.add( new BasicNameValuePair( "urlpkid","" ) );
            list.add( new BasicNameValuePair( "urlreasons","" ) );
            list.add( new BasicNameValuePair( "organ_name","滨海农商行(全辖汇总)" ) );
            list.add( new BasicNameValuePair( "databatch","2020-07-28" ) );
            list.add( new BasicNameValuePair( "organ_id","10" ) );
            list.add( new BasicNameValuePair( "report_id","0" ) );
            list.add( new BasicNameValuePair( "target_id","0" ) );

            System.out.println( httpPost.getRequestLine());
            CloseableHttpResponse httpResponse =null;
            try {
                httpResponse = closeableHttpClient.execute( httpPost );
                HttpEntity entity = httpResponse.getEntity();
                System.out.println(httpResponse.getStatusLine());
                if(entity!=null){
                    System.out.println(EntityUtils.toString( entity,"utf-8" ));
                }
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                httpResponse.close();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            closeableHttpClient.close();
        }
    }
}

  

  

 
原文地址:https://www.cnblogs.com/Alexr/p/13397186.html