HttpClient 发送http和https 请求


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

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值