package com.erdaoya.springcloud.comx.utils.rest.clients; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.erdaoya.springcloud.comx.utils.rest.ResponseMessage; import com.erdaoya.springcloud.comx.utils.rest.Url; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.methods.RequestBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.util.HashMap; /** * Created by xue on 12/24/16. * TODO 简单编写,待优化 // TODO 记录日志 或在外层 */ public class ApacheHttpClient implements HttpClientX { public static HttpResponse request(String url, String method, String requestData, HashMap<String, String> headers, Integer timeout) throws IOException { CloseableHttpClient httpclient = HttpClients.createDefault(); HttpUriRequest httpUriRequest = RequestBuilder.create(method).setUri(url).build(); // set header; return httpclient.execute(httpUriRequest); } public static ResponseMessage request(Url url, String method, String requestData, HashMap<String, String> headers, Integer timeout, String a) throws IOException { CloseableHttpClient httpclient = HttpClients.createDefault(); String target = url.getUrl(); String responseBody = ""; // 暂时只最简单请求 try { HttpGet httpget = new HttpGet(target); System.out.println("Executing request " + httpget.getRequestLine()); // Create a custom response handler ResponseHandler<String> responseHandler = new ResponseHandler<String>() { @Override public String handleResponse( final HttpResponse response) throws ClientProtocolException, IOException { int status = response.getStatusLine().getStatusCode(); if (status >= 200 && status < 300) { HttpEntity entity = response.getEntity(); return entity != null ? EntityUtils.toString(entity) : null; } else { throw new ClientProtocolException("Unexpected response status: " + status); } } }; responseBody = httpclient.execute(httpget, responseHandler); System.out.println("----------------------------------------"); System.out.println(responseBody); } finally { httpclient.close(); } JSONObject responseBodyJson = JSON.parseObject(responseBody); return new ResponseMessage(responseBodyJson.get("data"), responseBodyJson.get("message").toString(), 200); } }