收藏 分销(赏)

JAVA利用HttpClient进行POST请求(HTTPS).doc

上传人:w****g 文档编号:2492899 上传时间:2024-05-30 格式:DOC 页数:6 大小:78.54KB
下载 相关 举报
JAVA利用HttpClient进行POST请求(HTTPS).doc_第1页
第1页 / 共6页
JAVA利用HttpClient进行POST请求(HTTPS).doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述
(完整版)JAVA利用HttpClient进行POST请求(HTTPS) JAVA利用HttpClient进行POST请求(HTTPS)  分类: java(31)  jsp(1)  目前,要为另一个项目提供接口,接口是用HTTP URL实现的,最初的想法是另一个项目用jQuery post进行请求。 但是,很可能另一个项目是部署在别的机器上,那么就存在跨域问题,而JQuery的post请求是不允许跨域的。 这时,就只能够用HttpClient包进行请求了,同时由于请求的URL是HTTPS的,为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程. 1。写一个SSLClient类,继承至HttpClient [java] view plain copy   1. import java.security.cert.CertificateException;   2. import java.security。cert。X509Certificate;   3. import 。ssl。SSLContext;   4. import javax。net.ssl.TrustManager;   5. import .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. //用于进行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. }   [java] view plain copy   1. import java。security.cert.CertificateException;   2. import java。security。cert。X509Certificate;   3. import 。ssl。SSLContext;   4. import 。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. //用于进行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发送post请求的类 [java] view plain copy   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进行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.             //设置参数    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. }   [java] view plain copy   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进行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.             //设置参数   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.调用post请求的测试代码 [java] view plain copy   1. import java.util.HashMap;   2. import java。util。Map;   3. //对接口进行测试    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. }   [java] view plain copy   1. import java。util。HashMap;   2. import java.util.Map;   3. //对接口进行测试   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://
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服