Rest 风格的webservice 调用

	
import java.net.URI;

import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;

import org.apache.log4j.Logger;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.core.util.MultivaluedMapImpl;

public class RestfulUtils {

	/**
	 * 日志
	 */
	private static Logger logger = Logger.getLogger(RestfulUtils.class);

	/**
	 * 获取全文检索结果
	 * 
	 * @param url
	 *            全文检索url
	 * @param userLoginName
	 *            登录名
	 * @param divisionId
	 *            行政区划
	 * @param queryStr
	 *            查询参数
	 * @param sortBy
	 *            排序方式
	 * @param pageNo
	 *            请求页数
	 * @param pageSize
	 *            每页条数
	 * @param returnFields
	 *            返回字段名称数组
	 * @return
	 * @author xhcheng3
	 * @created 2016年10月22日 下午1:11:20
	 * @lastModified
	 * @history
	 */
	public static String invokeQueryRest(String url, String userLoginName, String divisionId, String queryStr,
			String sortBy, String pageNo, String pageSize, String returnFields) {

		try {
			Client client = Client.create();
			URI u = new URI(url);
			WebResource resource = client.resource(u);
			MultivaluedMap<String, String> params = new MultivaluedMapImpl();
			params.add("userLoginName", userLoginName);
			params.add("divisionId", XzqhUtils.xzqhLike(divisionId));
			params.add("queryStr", queryStr);
			params.add("sortBy", sortBy);
			params.add("pageNo", pageNo);
			params.add("pageSize", pageSize);
			params.add("returnFileds", returnFields);
			logger.info("查询参数:" + params.toString());
			return resource.type(MediaType.APPLICATION_FORM_URLENCODED).post(String.class, params);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 获取总数统计结果
	 * 
	 * @param url
	 * @param userLoginName
	 *            登录名
	 * @param divisionId
	 *            行政区划
	 * @param queryStr
	 *            查询参数
	 * @return
	 * @author xhcheng3
	 * @created 2016年10月23日 下午4:32:17
	 * @lastModified
	 * @history
	 */
	public static String invokeCountRest(String url, String userLoginName, String divisionId, String queryStr) {

		try {
			Client client = Client.create();
			URI u = new URI(url);
			WebResource resource = client.resource(u);
			MultivaluedMap<String, String> params = new MultivaluedMapImpl();
			params.add("userLoginName", userLoginName);
			params.add("divisionId", XzqhUtils.xzqhLike(divisionId));
			params.add("queryStr", queryStr);
			logger.info("统计参数:" + params.toString());
			return resource.type(MediaType.APPLICATION_FORM_URLENCODED).post(String.class, params);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static void main(String[] args) {

		String s = "SEARCH_TEXT:王生安";
		String queryUrl = "http://192.168.201.33:8001/full-text-search/api/query";
		String returnFields = "";
		String result = invokeQueryRest(queryUrl, "", "341600000000", s, "DATA_I_TYPE_ID ASC,score DESC", "", "100",
				returnFields);
		System.out.println(result);
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值