• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java如何使用HttpClient对HTTPS接口调用的实例

java 搞代码 4年前 (2022-01-09) 15次浏览 已收录 0个评论

本篇文章主要介绍了JAVA利用HttpClient进行HTTPS接口调用的方法,具有一定的参考价值,有兴趣的可以了解一下

本文介绍了JAVA利用HttpClient进行HTTPS接口调用的方法,分享给大家,具体如下:

1.为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程。

import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;import org.apache.http.conn.ClientConnectionManager;import org.apache.http.conn.scheme.Scheme;import org.apache.http.conn.scheme.SchemeRegistry;import org.apache.http.conn.ssl.SSLSocketFactory;import org.apache.http.impl.client.DefaultHttpClient;/** * 用于进行Https请求的HttpClient  * @ClassName: SSLClient  * @Description: TODO * @author Devin <xxx>  * @date 2017年2月7日 下午1:42:07  *  */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));  }}

2.创建一个利用HttpClient发送post请求的工具类

import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.StatusLine;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.StringEntity;import org.apache.http.message.BasicHeader;import org.apache.http.util.EntityUtils;/** * 利用HttpClient进行post请求的工具类 * @ClassName: HttpClientUtil  * @Description: TODO * @author Devin <xxx>  * @date 2017年2月7日 下午1:43:38  *  */public class HttpClientUtil {  @SuppressWarnings("resource")  public static String doPost(String url,String jsonstr,String charset){    HttpClient httpClient = null;    HttpPost httpPost = null;    String result = null;    try{      httpClient = new SSLClient();      httpPost = new HttpPost(url);      httpPost.addHeader("Content-Type", "application/json");      StringEntity se = new StringEntity(jsonstr);      se.setContentType("text/json");      se.setContentEncoding(new BasicHeader("Content-Type", "application/json"));      httpPost.setEntity(se);      HttpResponse response = httpClient.execute(httpPost);      if(response != null){        HttpEntity resEntity = response.getEntity();        if(resEntity != null){          result = EntityUtils.toString(resEntity,charset);        }      }    }catch(Exception ex){      ex.printStackTrace();    }    return result;  }}

3.测试代码

public static void main(String[] args){     String url = "https://192.168.1.101/xxx";    String jsonStr = "{xxx}";    String httpOrgCreateTestRtn = HttpClientUtil.doPost(url, jsonStr, "utf-8")<b>本文来源gao@!dai!ma.com搞$$代^@码5网@</b>;  }

以上就是Java如何使用HttpClient对HTTPS接口调用的实例的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java如何使用HttpClient对HTTPS接口调用的实例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址