//用于进行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;
}