httpClient4.5.12,集成Cookie

 

 

业务流程---登录----模块操作。。。。----退出结束

 

设置全局变量

    static String JSESSIONID; // Cookie全局变量
    static String Domain;
    static String Path;
    static int  Version;

  

 

Cookie集成

    /**
     * POST请求
     *
     * @param url
     * @param parameters
     * @param headers
     * @return
     */
    public static String doPost(String url, String parameters, String headers) {
        // 1 创建请求连接
        CloseableHttpClient closeableHttpClient = null;
        CookieStore cookieStore = new BasicCookieStore();
        BasicClientCookie cookie = new BasicClientCookie( "JSESSIONID", JSESSIONID );
        cookie.setVersion( Version );
        cookie.setDomain( Domain );
        cookie.setPath( Path );
        cookieStore.addCookie( cookie );

        closeableHttpClient = HttpClients.custom()
                .setRedirectStrategy( new LaxRedirectStrategy() ) //自动跟随重定向
                .setDefaultCookieStore( cookieStore ) //
                .build();

        HttpPost httpPost = new HttpPost( url );
        List<NameValuePair> formparams = new ArrayList<NameValuePair>();
        // 代理
        if (openProxy) {
            httpPost.setConfig( requestConfig );
        }
        // 2 判断参数不为空值时,进行切割
        if (!CommonMethord.isEmpty( parameters )) {
            String[] parameter_array = parameters.split( "&" );
            for (String line : parameter_array) {
                String[] parameter = line.split( "=" );
                if (parameter.length >= 2) {
                    formparams.add( new BasicNameValuePair( parameter[0], parameter[1] ) );
                } else {
                    formparams.add( new BasicNameValuePair( parameter[0], "" ) );
                }
            }
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity( formparams, Consts.UTF_8 );
            httpPost.setEntity( entity );
        }
        // 处理头部信息
        if (!CommonMethord.isEmpty( headers )) {
            String[] header_array = headers.split( ";" );
            for (String line : header_array) {
                String[] header = line.split( "=" );
                httpPost.addHeader( header[0], header[1] );
            }
        }
        // 获取返回对象
        String result = "";
        CloseableHttpResponse resp;
        try {
            // 发送请求
            HttpClientContext localContext = HttpClientContext.create();
            resp = closeableHttpClient.execute( httpPost, localContext );

            //  获取Cookie信息
            List<Cookie> cookies = localContext.getCookieStore().getCookies();

            for (int i = 0; i < cookies.size(); i++) {
                if (cookies.get( i ).getName().equals( "JSESSIONID" )) {
                    JSESSIONID = cookies.get( i ).getValue();
                    Domain = cookies.get( i ).getDomain();
                    Path = cookies.get( i ).getPath();
                    Version = cookies.get( i ).getVersion();
                }
                System.out.println( "========完整值===========" + cookies.get( i ) );
                System.out.println( "========完整值===========" + cookies.get( i ).getValue() );
            }


            // http 状态 200 404 302 500
            StatusLine line = resp.getStatusLine(); //返回带有Cookie
            log.info( "状态返回码:" + line );
            // 结果
            HttpEntity httpEntity = resp.getEntity();
            // 结果转换
            result = EntityUtils.toString( httpEntity, "utf-8" );
            log.info( "返回结果:" + result );

        } catch (IOException e) {
            e.printStackTrace();
        }
        return result;
    }

  

 

// 测试

    // 测试
    public static void main(String[] args) {
        HttpClient.openProxy = true;

        doPost( "http://192.168.31.193:8080/consumer/loginAction.do?method=login",
                "logonname=admin&password=abc123&logindate=2020-07-27&Submit=",
                "" );
        doPost( "http://192.168.31.193:8080/consumer/repFileAction.do?method=exportTemplate",
                "urlpkid=&urlreasons=&organ_name=滨海农商行(全辖汇总)&databatch=2020-07-28&organ_id=10&report_id=0&target_id=0",
                "" );
    }
}

  

 

 

许久不用,生疏了,擦他大爷的蛋,真几把坑~~~~~~~~~~~~

httpClient4.5.12,集成Cookie

上一篇:npm上传自定义模块或包


下一篇:关于css布局中,inline-block元素间隙的处理方法