美文网首页
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