Springboot整合Jersey
2018-12-18 本文已影响0人
xbmchina
简介
本文介绍的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;
}
}