http请求访问
public static String post(String params, Map<String,String> map) throws Exception {
SSLContext sslcontext = SSLContext.getInstance("SSL", "SunJSSE");//第一个参数为协议,第二个参数为提供者(可以缺省)
TrustManager[] tm = {new MyX509TrustManager()};
sslcontext.init(null, tm, new SecureRandom());
HostnameVerifier ignoreHostnameVerifier = new HostnameVerifier(){
public boolean verify(String s, SSLSession sslsession){
System.out.println("WARNING: Hostname is not matched for cert.");
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(ignoreHostnameVerifier);
HttpsURLConnection.setDefaultSSLSocketFactory(sslcontext.getSocketFactory());
String result = null;
URL url = new URL(apiUrl.getUrl());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout("5000");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setInstanceFollowRedirects(true);
// 设置请求方式
conn.setRequestMethod("post");
// 设置编码
conn.setRequestProperty("Charset", "utf-8");
// 设置发送数据的格式
conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
conn.setRequestProperty("connection", "Keep-Alive");
byte[] token = (map.get("userName") + ":" + map.get("password") ).getBytes("utf-8");
String authorization = "Basic " + new String(Base64.encodeBase64(token), "utf-8");
//base64加密
conn.setRequestProperty("Authorization", authorization);
conn.connect();
OutputStream out = conn.getOutputStream();
out.write(params.getBytes("UTF-8"));
out.flush();
out.close();
// 请求返回的数据
InputStream in = conn.getInputStream();
byte[] data = new byte[in.available()];
in.read(data);
result = new String(data);
in.close();
conn.disconnect();
return result;
}