HttpClient 发送http和https 请求

    xiaoxiao2023-10-16  37

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

     

     

    最新回复(0)