乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      JAVA利用HttpClient進(jìn)行POST請求(HTTPS)

       ebonyzhang 2016-07-20

      目前,要為另一個項目提供接口,接口是用HTTP URL實現(xiàn)的,最初的想法是另一個項目用jQuery post進(jìn)行請求。

      但是,很可能另一個項目是部署在別的機(jī)器上,那么就存在跨域問題,而JQuery的post請求是不允許跨域的。

      這時,就只能夠用HttpClient包進(jìn)行請求了,同時由于請求的URL是HTTPS的,為了避免需要證書,所以用一個類繼承DefaultHttpClient類,忽略校驗過程。

      1.寫一個SSLClient類,繼承至HttpClient

      1. import java.security.cert.CertificateException;  
      2. import java.security.cert.X509Certificate;  
      3. import javax.net.ssl.SSLContext;  
      4. import javax.net.ssl.TrustManager;  
      5. import javax.net.ssl.X509TrustManager;  
      6. import org.apache.http.conn.ClientConnectionManager;  
      7. import org.apache.http.conn.scheme.Scheme;  
      8. import org.apache.http.conn.scheme.SchemeRegistry;  
      9. import org.apache.http.conn.ssl.SSLSocketFactory;  
      10. import org.apache.http.impl.client.DefaultHttpClient;  
      11. //用于進(jìn)行Https請求的HttpClient  
      12. public class SSLClient extends DefaultHttpClient{  
      13.     public SSLClient() throws Exception{  
      14.         super();  
      15.         SSLContext ctx = SSLContext.getInstance("TLS");  
      16.         X509TrustManager tm = new X509TrustManager() {  
      17.                 @Override  
      18.                 public void checkClientTrusted(X509Certificate[] chain,  
      19.                         String authType) throws CertificateException {  
      20.                 }  
      21.                 @Override  
      22.                 public void checkServerTrusted(X509Certificate[] chain,  
      23.                         String authType) throws CertificateException {  
      24.                 }  
      25.                 @Override  
      26.                 public X509Certificate[] getAcceptedIssuers() {  
      27.                     return null;  
      28.                 }  
      29.         };  
      30.         ctx.init(null, new TrustManager[]{tm}, null);  
      31.         SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);  
      32.         ClientConnectionManager ccm = this.getConnectionManager();  
      33.         SchemeRegistry sr = ccm.getSchemeRegistry();  
      34.         sr.register(new Scheme("https", 443, ssf));  
      35.     }  
      36. }  

      2.寫一個利用HttpClient發(fā)送post請求的類

      1. import java.util.ArrayList;  
      2. import java.util.Iterator;  
      3. import java.util.List;  
      4. import java.util.Map;  
      5. import java.util.Map.Entry;  
      6. import org.apache.http.HttpEntity;  
      7. import org.apache.http.HttpResponse;  
      8. import org.apache.http.NameValuePair;  
      9. import org.apache.http.client.HttpClient;  
      10. import org.apache.http.client.entity.UrlEncodedFormEntity;  
      11. import org.apache.http.client.methods.HttpPost;  
      12. import org.apache.http.message.BasicNameValuePair;  
      13. import org.apache.http.util.EntityUtils;  
      14. /* 
      15.  * 利用HttpClient進(jìn)行post請求的工具類 
      16.  */  
      17. public class HttpClientUtil {  
      18.     public String doPost(String url,Map<String,String> map,String charset){  
      19.         HttpClient httpClient = null;  
      20.         HttpPost httpPost = null;  
      21.         String result = null;  
      22.         try{  
      23.             httpClient = new SSLClient();  
      24.             httpPost = new HttpPost(url);  
      25.             //設(shè)置參數(shù)  
      26.             List<NameValuePair> list = new ArrayList<NameValuePair>();  
      27.             Iterator iterator = map.entrySet().iterator();  
      28.             while(iterator.hasNext()){  
      29.                 Entry<String,String> elem = (Entry<String, String>) iterator.next();  
      30.                 list.add(new BasicNameValuePair(elem.getKey(),elem.getValue()));  
      31.             }  
      32.             if(list.size() > 0){  
      33.                 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,charset);  
      34.                 httpPost.setEntity(entity);  
      35.             }  
      36.             HttpResponse response = httpClient.execute(httpPost);  
      37.             if(response != null){  
      38.                 HttpEntity resEntity = response.getEntity();  
      39.                 if(resEntity != null){  
      40.                     result = EntityUtils.toString(resEntity,charset);  
      41.                 }  
      42.             }  
      43.         }catch(Exception ex){  
      44.             ex.printStackTrace();  
      45.         }  
      46.         return result;  
      47.     }  
      48. }  
      3.調(diào)用post請求的測試代碼

      1. import java.util.HashMap;  
      2. import java.util.Map;  
      3. //對接口進(jìn)行測試  
      4. public class TestMain {  
      5.     private String url = "https://192.168.1.101/";  
      6.     private String charset = "utf-8";  
      7.     private HttpClientUtil httpClientUtil = null;  
      8.       
      9.     public TestMain(){  
      10.         httpClientUtil = new HttpClientUtil();  
      11.     }  
      12.       
      13.     public void test(){  
      14.         String httpOrgCreateTest = url + "httpOrg/create";  
      15.         Map<String,String> createMap = new HashMap<String,String>();  
      16.         createMap.put("authuser","*****");  
      17.         createMap.put("authpass","*****");  
      18.         createMap.put("orgkey","****");  
      19.         createMap.put("orgname","****");  
      20.         String httpOrgCreateTestRtn = httpClientUtil.doPost(httpOrgCreateTest,createMap,charset);  
      21.         System.out.println("result:"+httpOrgCreateTestRtn);  
      22.     }  
      23.       
      24.     public static void main(String[] args){  
      25.         TestMain main = new TestMain();  
      26.         main.test();  
      27.     }  
      28. }  

      httpClient4.2的jar包下載路徑:http://download.csdn.net/detail/hqmryang/4582440#comment

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多