資源簡介
HttpClient在當今Java應用中的位置越來越重要。從該項目的變遷過程我們不難發現,其已經從apache-commons眾多的子項目中剝離,一躍成為如今的頂級項目,可見它的分量。然而隨著項目的升級和架構的調整,很多以前常用的類和方法都已被打上了@Deprecated注解,作為一個有代碼潔癖的程序猿,我們也有必要升級一下工具類,讓代碼更加整潔。
另外在項目中正好需要訪問https協議的接口,而對應的服務器沒有購買商業CA頒發的正式受信證書,只是做了個自簽名(聯想一下12306網站購票時提示的那個警告信息),默認情況下通過HttpClient訪問會拋出異常。相關文章參閱:http://blog.csdn.net/chaijunkun/article/details/40145685

代碼片段和文件信息
package?net.csdn.blog.chaijunkun.util;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.net.URISyntaxException;
import?java.nio.charset.Charset;
import?java.security.KeyManagementException;
import?java.security.KeyStore;
import?java.security.KeyStoreException;
import?java.security.NoSuchAlgorithmException;
import?java.security.cert.CertificateException;
import?java.security.cert.X509Certificate;
import?java.util.HashMap;
import?java.util.linkedList;
import?java.util.List;
import?java.util.Map;
import?java.util.Map.Entry;
import?java.util.Set;
import?javax.net.ssl.SSLContext;
import?org.apache.commons.logging.Log;
import?org.apache.commons.logging.LogFactory;
import?org.apache.http.HttpException;
import?org.apache.http.HttpResponse;
import?org.apache.http.NameValuePair;
import?org.apache.http.client.ClientProtocolException;
import?org.apache.http.client.HttpClient;
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.client.utils.URIBuilder;
import?org.apache.http.config.ConnectionConfig;
import?org.apache.http.config.Registry;
import?org.apache.http.config.RegistryBuilder;
import?org.apache.http.config.SocketConfig;
import?org.apache.http.conn.socket.ConnectionSocketFactory;
import?org.apache.http.conn.socket.layeredConnectionSocketFactory;
import?org.apache.http.conn.socket.PlainConnectionSocketFactory;
import?org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import?org.apache.http.conn.ssl.SSLContexts;
import?org.apache.http.conn.ssl.TrustStrategy;
import?org.apache.http.cookie.Cookie;
import?org.apache.http.cookie.CookieOrigin;
import?org.apache.http.entity.mime.FormBodyPart;
import?org.apache.http.entity.mime.HttpMultipartMode;
import?org.apache.http.entity.mime.MultipartEntityBuilder;
import?org.apache.http.impl.client.BasicCookieStore;
import?org.apache.http.impl.client.HttpClientBuilder;
import?org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import?org.apache.http.impl.cookie.BasicClientCookie;
import?org.apache.http.impl.cookie.BestMatchSpec;
import?org.apache.http.message.BasicNameValuePair;
class?AnyTrustStrategy?implements?TrustStrategy{
@Override
public?boolean?isTrusted(X509Certificate[]?chain?String?authType)?throws?CertificateException?{
return?true;
}
}
public?class?HttpUtil?{
private?static?final?Log?log=?LogFactory.getLog(HttpUtil.class);
private?static?int?bufferSize=?1024;
private?static?volatile?HttpUtil?instance;
private?ConnectionConfig?connConfig;
private?SocketConfig?socketConfig;
private?ConnectionSocketFactory?plainSF;
private?KeyStore?trustStore;
private?SSLContext?sslContext;
private?layeredConnectionSocketFactory?sslSF;
private?Registry?registry;
private?PoolingHttpClientConnect
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1511??2014-10-16?18:49??pom.xm
?????目錄???????????0??2014-10-16?16:52??src\
?????目錄???????????0??2014-10-16?16:52??src\main\
?????目錄???????????0??2014-10-16?16:52??src\main\java\
?????目錄???????????0??2014-10-16?16:52??src\main\java\net\
?????目錄???????????0??2014-10-16?16:52??src\main\java\net\csdn\
?????目錄???????????0??2014-10-16?16:52??src\main\java\net\csdn\blog\
?????目錄???????????0??2014-10-16?16:52??src\main\java\net\csdn\blog\chaijunkun\
?????目錄???????????0??2014-10-16?17:13??src\main\java\net\csdn\blog\chaijunkun\util\
?????文件???????13461??2014-10-16?17:12??src\main\java\net\csdn\blog\chaijunkun\util\HttpUtil.java
?????目錄???????????0??2014-10-16?16:52??src\test\
?????目錄???????????0??2014-10-16?16:52??src\test\java\
?????目錄???????????0??2014-10-16?16:52??src\test\java\net\
?????目錄???????????0??2014-10-16?16:52??src\test\java\net\csdn\
?????目錄???????????0??2014-10-16?16:52??src\test\java\net\csdn\blog\
?????目錄???????????0??2014-10-16?16:52??src\test\java\net\csdn\blog\chaijunkun\
?????目錄???????????0??2014-10-16?16:52??src\test\java\net\csdn\blog\chaijunkun\util\
?????文件?????????592??2014-10-16?17:15??src\test\java\net\csdn\blog\chaijunkun\util\AppTest.java
評論
共有 條評論