美文网首页
Springboot整合Jersey

Springboot整合Jersey

作者: xbmchina | 来源:发表于2018-12-18 23:02 被阅读0次

    简介

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

    使用

    • 导入maven依赖
    <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;
            
        }
        
    }
    
    

    相关文章

      网友评论

          本文标题:Springboot整合Jersey

          本文链接:https://www.haomeiwen.com/subject/gyxxhqtx.html