分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

发送http请求和https请求的工具类

发布时间:2023-09-06 02:21责任编辑:白小东关键词:http

package com.haiyisoft.cAssistant.utils;

import java.io.IOException;
import java.util.ArrayList; ?
import java.util.Iterator; ?
import java.util.List; ?
import java.util.Map; ?
import java.util.Map.Entry; 

import org.apache.http.HttpEntity; ?
import org.apache.http.HttpResponse; ?
import org.apache.http.NameValuePair; ?
import org.apache.http.client.HttpClient; ?
import org.apache.http.client.entity.UrlEncodedFormEntity; ?
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost; ?
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair; ?
import org.apache.http.util.EntityUtils; ?
?
/* ?
* 利用HttpClient进行post请求的工具类 ?
*/ ?
public class HttpClientUtil { ?
???public static String doPost(String url, Map<String, String> map, String charset) { ?
???????HttpClient httpClient = null; ?
???????HttpPost httpPost = null; ?
???????String result = null; ?
???????try { ?
???????????httpClient = new SSLClient(); ?
???????????httpPost = new HttpPost(url); ?
???????????// 设置参数 ?
???????????List<NameValuePair> list = new ArrayList<NameValuePair>(); ?
???????????Iterator iterator = map.entrySet().iterator(); ?
???????????while (iterator.hasNext()) { ?
???????????????Entry<String, String> elem = (Entry<String, String>) iterator ?
???????????????????????.next(); ?
???????????????list.add(new BasicNameValuePair(elem.getKey(), elem.getValue())); ?
???????????} ?
???????????if (list.size() > 0) { ?
???????????????UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, ?
???????????????????????charset); ?
???????????????httpPost.setEntity(entity); ?
???????????} ?
???????????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 "888888";/**链接失败*/
???????} ?
???????return result; ?
???} ?
???
public ?String doGet(String url, Map<String, String> param) {

// 创建Httpclient对象
CloseableHttpClient httpclient = HttpClients.createDefault();

String resultString = "";
CloseableHttpResponse response = null;
try {
// 创建uri
URIBuilder builder = new URIBuilder(url);
if (param != null) {
for (String key : param.keySet()) {
builder.addParameter(key, param.get(key));
}
}
java.net.URI uri = builder.build();

// 创建http GET请求
HttpGet httpGet = new HttpGet(uri);

// 执行请求
response = httpclient.execute(httpGet);
// 判断返回状濁是否为200
if (response.getStatusLine().getStatusCode() == 200) {
resultString = EntityUtils.toString(response.getEntity(),
"iso8859-1");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (response != null) {
response.close();
}
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return resultString;
}
}

==========================================

package com.haiyisoft.cAssistant.utils;

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 ???
@SuppressWarnings("deprecation")
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)); ?
???} ?
} ?

发送http请求和https请求的工具类

原文地址:https://www.cnblogs.com/zhangzhiqin/p/9933978.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved