//用于进行Https请求的HttpClient public class SSLClient extends DefaultHttpClient {
public SSLClient() throws Exception { super(); SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { }
@Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { }
@Override public X509Certificate[] getAcceptedIssuers() { return null; } }; ctx.init(null, new TrustManager[] { tm }, null); SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); ClientConnectionManager ccm = this.getConnectionManager(); SchemeRegistry sr = ccm.getSchemeRegistry(); sr.register(new Scheme("https", 443, ssf)); }
}
public static boolean httpPostWithJson(String url,String appId){ boolean isSuccess = false; HttpPost post = null; try { /** * 创建一个httpclient对象 */ HttpClient httpClient = new SSLClient(); //HttpClient httpClient = new DefaultHttpClient();
// 设置超时时间 httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 2000); httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 2000); //创建一个post对象 post = new HttpPost(url); post.setHeader("Sess","11"); post.setHeader("appid", "22"); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("token", "1233")); // 构建消息实体 // StringEntity entity = new StringEntity(jsonP.toString(), Charset.forName("UTF-8")); HttpEntity httpEntity = new UrlEncodedFormEntity(params, "UTF-8");
//entity.setContentEncoding("UTF-8"); // 发送Json格式的数据请求 //entity.setContentType("application/json"); // 设置请求的内容 post.setEntity(httpEntity ); HttpResponse response = httpClient.execute(post); // 检验返回码 int statusCode = response.getStatusLine().getStatusCode(); System.out.println(statusCode); //通过EntityUitls获取返回内容 String result = EntityUtils.toString(response.getEntity(),"UTF-8"); System.out.println(result); if(statusCode != HttpStatus.SC_OK){ isSuccess = false; }else{ int retCode = 0; String sessendId = ""; // 返回码中包含retCode及会话Id for(Header header : response.getAllHeaders()){ if(header.getName().equals("retcode")){ retCode = Integer.parseInt(header.getValue()); } if(header.getName().equals("SessionId")){ sessendId = header.getValue(); } } } } catch (Exception e) { e.printStackTrace(); isSuccess = false; }finally{ if(post != null){ try { post.releaseConnection(); Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } } return isSuccess; }