HttpClient示例
import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.ParseException; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.cookie.Cookie; import org.apache.http.cookie.CookieOrigin; import org.apache.http.cookie.CookieSpec; import org.apache.http.cookie.CookieSpecProvider; import org.apache.http.cookie.MalformedCookieException; import org.apache.http.impl.client.BasicCookieStore; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.cookie.BestMatchSpecFactory; import org.apache.http.impl.cookie.BrowserCompatSpec; import org.apache.http.impl.cookie.BrowserCompatSpecFactory; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HttpContext; import org.apache.http.util.EntityUtils; public class HttpClientObject { private CloseableHttpClient httpClient = null; private HttpResponse response; private HttpPost httpPost = null; private HttpGet httpGet = null; private String paramKey = ""; private String paramValue = ""; private String responseString; public void setParamKey(String paramKey) { this.paramKey = paramKey; } public void setParamValue(String paramValue) { this.paramValue = paramValue; } public String getResponseString() { return responseString; } public HttpClientObject() { this.getHttpClient(); } private List<NameValuePair> getRequestBody() { NameValuePair pair1 = new BasicNameValuePair(paramKey, paramValue); List<NameValuePair> pairList = new ArrayList<NameValuePair>(); pairList.add(pair1); return pairList; } public void submit() { try { if (httpPost != null) { response = httpClient.execute(httpPost); httpPost = null; } if (httpGet != null) { response = httpClient.execute(httpGet); httpGet = null; } this.response(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void response() { try { HttpEntity httpEntity = response.getEntity(); responseString = EntityUtils.toString(httpEntity); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void setPost(String httpUrl) { try { HttpEntity requestHttpEntity = new UrlEncodedFormEntity( this.getRequestBody()); httpPost = new HttpPost(httpUrl); httpPost.setEntity(requestHttpEntity); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } } public void setGet(String httpUrl) { httpGet = new HttpGet(httpUrl); } private void getHttpClient() { BasicCookieStore cookieStore = new BasicCookieStore(); CookieSpecProvider easySpecProvider = new CookieSpecProvider() { public CookieSpec create(HttpContext context) { return new BrowserCompatSpec() { @Override public void validate(Cookie cookie, CookieOrigin origin) throws MalformedCookieException { // Oh, I am easy } }; } }; Registry<CookieSpecProvider> r = RegistryBuilder .<CookieSpecProvider> create() .register(CookieSpecs.BEST_MATCH, new BestMatchSpecFactory()) .register(CookieSpecs.BROWSER_COMPATIBILITY, new BrowserCompatSpecFactory()) .register("easy", easySpecProvider).build(); RequestConfig requestConfig = RequestConfig.custom() .setCookieSpec("easy").setSocketTimeout(10000) .setConnectTimeout(10000).build(); httpClient = HttpClients.custom().setDefaultCookieSpecRegistry(r) .setDefaultRequestConfig(requestConfig) .setDefaultCookieStore(cookieStore).build(); } }
调用时:
HttpClientObject hco = new HttpClientObject(); hco.setGet(url); hco.submit(); String responseContent = hco.getResponseString();
点亮测试人生!QQ:408129370
百度阅读电子书地址:http://yuedu.baidu.com/ebook/f6dbb2a2f01dc281e53af0f3
讨论QQ群:536192476
个人公众号:
百度阅读电子书地址:http://yuedu.baidu.com/ebook/f6dbb2a2f01dc281e53af0f3
讨论QQ群:536192476
个人公众号:
![](http://files.cnblogs.com/files/zhangfei/%E6%B5%8B%E8%AF%95%E5%BC%80%E5%8F%91%E6%B1%9F%E6%B9%96.bmp)