Springboot整合Jersey

2018-12-18  本文已影响0人  xbmchina

简介

本文介绍的Jersey的客户端(请求工具)。它就类似于Httpclient这种工具类。原理什么的东西,你自己可以去官网

使用

<dependency>
     <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jersey</artifactId>
</dependency>

import java.util.Map;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;


/**
 * Jersey请求工具类
 * 
 *
 */
public class JerseyClientUtil {

    private static final int SUCCESS = 200;
    private static final int TOKEN_INVALID = 401;
    private static final String REQUEST_URL = "http://www.baidu.com";
    /**
     * 带头部信息的get请求
     * 
     * @param url
     * @param headers
     * @return
     */
    public static String getWithHeader(String path, Map<String, Object> queryParam,
            MultivaluedMap<String, Object> headers) {
        String readEntity = null;
        Client client = ClientBuilder.newClient();
        WebTarget webTarget = client.target(REQUEST_URL).path(path);
        for (Map.Entry<String, Object> entry : queryParam.entrySet()) {
            webTarget.queryParam(entry.getKey(), entry.getValue());
        }
        Response response = webTarget.request().headers(headers).get();
        readEntity = response.readEntity(String.class);
        if (response.getStatus() == SUCCESS) {
            return readEntity;
        }
        return null;
    }

    /**
     * 带头部信息的post请求
     * 
     * @param url
     * @param headers
     * @param params
     * @return
     */
    public static String postWithHeader(String path, MultivaluedMap<String, Object> headers, Map<String, String> params){
        String readEntity = null;
        Client client = ClientBuilder.newClient();
        WebTarget target = client.target(REQUEST_URL).path(path);
        Response response = target.request(MediaType.APPLICATION_JSON_TYPE).headers(headers)
                .post(Entity.entity(params, MediaType.APPLICATION_JSON_TYPE));
        readEntity = response.readEntity(String.class);
        if (response.getStatus() == SUCCESS) {
            return readEntity;
        } 
        return null;

    }
    

    /**
     * 带头部信息的delete请求
     * 
     * @param url
     * @param headers
     * @return
     * @throws HXServerException
     */
    public static String deleteWithHeader(String path, Map<String, Object> queryParam,
            MultivaluedMap<String, Object> headers){
        String readEntity = null;
        Client client = ClientBuilder.newClient();
        WebTarget webTarget = client.target(REQUEST_URL).path(path);
        Response response = webTarget.request().headers(headers).delete();
        readEntity = response.readEntity(String.class);
        if (response.getStatus() == SUCCESS) {
            return readEntity;
        } 
        return null;
    }
    
    
    
    
    /**
     * 带头部信息的PUT请求
     * 
     * @param url
     * @param headers
     * @return
     * @throws HXServerException
     */
    public static String putWithHeader(String path, Map<String, Object> queryParam,
            MultivaluedMap<String, Object> headers) {
        
        String readEntity = null;
        Client client = ClientBuilder.newClient();
        WebTarget webTarget = client.target(REQUEST_URL).path(path);
        Response response = webTarget
                            .request(MediaType.APPLICATION_JSON_TYPE)
                            .headers(headers)
                            .put(Entity.entity(queryParam, MediaType.APPLICATION_JSON_TYPE));
        readEntity = response.readEntity(String.class);
        if (response.getStatus() == SUCCESS) {
            return readEntity;
        }
        return null;
        
    }
    
}

上一篇下一篇

猜你喜欢

热点阅读