public class HttpClient{
/**
* 处理https请求
* @param requestUrl 请求地址
* @param map 请求报头标识信息
* @return
*/
public static String httpsRequest(String requestUrl,Map map,String param){
PrintWriter out=null;
BufferedReader in=null;
StringBuffer buffer=new StringBuffer();
try{
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts=new TrustManager[]{new X509TrustManager(){
public X509Certificate[] getAcceptedIssuers(){
return null;
}
public void checkClientTrusted(X509Certificate[] certs,String authType)
throws CertificateException{
}
public void checkServerTrusted(X509Certificate[] certs,String authType)
throws CertificateException{
}
}};
// Install the all-trusting trust manager
SSLContext sc=SSLContext.getInstance("SSL");
sc.init(null,trustAllCerts,new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
// Create all-trusting host name verifier
HostnameVerifier allHostsValid=new HostnameVerifier(){
public boolean verify(String hostname,SSLSession session){
return true;
}
};
// Install the all-trusting host verifier
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
URL url=new URL(requestUrl);
HttpURLConnection con=(HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestMethod("POST");
con.setUseCaches(false);
if(map!=null){
for(Map.Entry entry : map.entrySet()){
con.setRequestProperty(entry.getKey(),entry.getValue());
}
}
out = new PrintWriter(con.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(con.getInputStream(),"utf-8"));
String line;
while((line=in.readLine())!=null){
buffer.append(line);
}
out.close();
}
catch(Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
}
return buffer.toString();
}
}