zoukankan      html  css  js  c++  java
  • 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();     
    
  • 相关阅读:
    Appium(一)安装
    Adb am/pm的使用
    RESTful API 设计指南
    选择物体生成Prefab
    C++网络开发Boost库
    Unity 猫眼效果
    React Native网络请求
    Unity高德LBS
    EasyTouch物体的旋转缩放
    Unity截屏分享朋友圈(微信)
  • 原文地址:https://www.cnblogs.com/zhangfei/p/3989815.html
Copyright © 2011-2022 走看看