package com.jm.educenter.controller;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.http.Consts;
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.config.RequestConfig;
import org.apache.http.client.config.RequestConfig.Builder;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLContextBuilder;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.conn.ssl.X509HostnameVerifier;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.message.BasicNameValuePair;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocket;
import java.io.IOException;
import java.net.SocketTimeoutException;
import java.security.GeneralSecurityException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/**
* 依赖的jar包有:commons-lang-2.6.jar、httpclient-4.3.2.jar、httpcore-4.3.1.jar、commons-io-2.4.jar
* @author zhaoyb
*
*/
public class HttpClientUtils {
public static final int connTimeout=10000;
public static final int readTimeout=10000;
public static final String charset="UTF-8";
private static HttpClient client = null;
static {
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
cm.setMaxTotal(128);
cm.setDefaultMaxPerRoute(128);
client = HttpClients.custom().setConnectionManager(cm).build();
}
public static String postParameters(String url, String parameterStr) throws ConnectTimeoutException, SocketTimeoutException, Exception{
return post(url,parameterStr,"application/x-www-form-urlencoded",charset,connTimeout,readTimeout);
}
public static String postParameters(String url, String parameterStr,String charset, Integer connTimeout, Integer readTimeout) throws ConnectTimeoutException, SocketTimeoutException, Exception{
return post(url,parameterStr,"application/x-www-form-urlencoded",charset,connTimeout,readTimeout);
}
public static String postParameters(String url, Map<String, String> params) throws ConnectTimeoutException,
SocketTimeoutException, Exception {
return postForm(url, params, null, connTimeout, readTimeout);
}
public static String postParameters(String url, Map<String, String> params, Integer connTimeout,Integer readTimeout) throws ConnectTimeoutException,
SocketTimeoutException, Exception {
return postForm(url, params, null, connTimeout, readTimeout);
}
public static String get(String url) throws Exception {
return get(url, charset, null, null);
}
public static String get(String url, String charset) throws Exception {
return get(url, charset, connTimeout, readTimeout);
}
/**
* 发送一个 Post 请求, 使用指定的字符集编码.
*
* @param url
* @param body RequestBody
* @param mimeType 例如 application/xml "application/x-www-form-urlencoded" a=1&b=2&c=3
* @param charset 编码
* @param connTimeout 建立链接超时时间,毫秒.
* @param readTimeout 响应超时时间,毫秒.
* @return ResponseBody, 使用指定的字符集编码.
* @throws ConnectTimeoutException 建立链接超时异常
* @throws SocketTimeoutException 响应超时
* @throws Exception
*/
public static String post(String url, String body, String mimeType,String charset, Integer connTimeout, Integer readTimeout)
throws ConnectTimeoutException, SocketTimeoutException, Exception {
HttpClient client = null;
HttpPost post = new HttpPost(url);
String result = "";
try {
if (StringUtils.isNotBlank(body)) {
HttpEntity entity = new StringEntity(body, ContentType.create(mimeType, charset));
post.setEntity(entity);
}
// 设置参数
Builder customReqConf = RequestConfig.custom();
if (connTimeout != null) {
customReqConf.setConnectTimeout(connTimeout);
}
if (readTimeout != null) {
customReqConf.setSocketTimeout(readTimeout);
}
post.setConfig(customReqConf.build());
HttpResponse res;
if (url.startsWith("https")) {
// 执行 Https 请求.
client = createSSLInsecureClient();
res = client.execute(post);
} else {
// 执行 Http 请求.
client = HttpClientUtils.client;
res = client.execute(post);
}
result = IOUtils.toString(res.getEntity().getContent(), charset);
} finally {
post.releaseConnection();
if (url.startsWith("https") && client != null&& client instanceof CloseableHttpClient) {
((CloseableHttpClient) client).close();
}
}
return result;
}
/**
* 提交form表单
*
* @param url
* @param params
* @param connTimeout
* @param readTimeout
* @return
* @throws ConnectTimeoutException
* @throws SocketTimeoutException
* @throws Exception
*/
public static String postForm(String url, Map<String, String> params, Map<String, String> headers, Integer connTimeout,Integer readTimeout) throws ConnectTimeoutException,
SocketTimeoutException, Exception {
HttpClient client = null;
HttpPost post = new HttpPost(url);
try {
if (params != null && !params.isEmpty()) {
List<NameValuePair> formParams = new ArrayList<NameValuePair>();
Set<Entry<String, String>> entrySet = params.entrySet();
for (Entry<String, String> entry : entrySet) {
formParams.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formParams, Consts.UTF_8);
post.setEntity(entity);
}
if (headers != null && !headers.isEmpty()) {
for (Entry<String, String> entry : headers.entrySet()) {
post.addHeader(entry.getKey(), entry.getValue());
}
}
// 设置参数
Builder customReqConf = RequestConfig.custom();
if (connTimeout != null) {
customReqConf.setConnectTimeout(connTimeout);
}
if (readTimeout != null) {
customReqConf.setSocketTimeout(readTimeout);
}
post.setConfig(customReqConf.build());
HttpResponse res = null;
if (url.startsWith("https")) {
// 执行 Https 请求.
client = createSSLInsecureClient();
res = client.execute(post);
} else {
// 执行 Http 请求.
client = HttpClientUtils.client;
res = client.execute(post);
}
return IOUtils.toString(res.getEntity().getContent(), "UTF-8");
} finally {
post.releaseConnection();
if (url.star
没有合适的资源?快使用搜索试试~ 我知道了~
java毕业设计 基于springboot+SpringCloud的线上教育项目源码+详细文档+全部资料(优秀项目).zip
共180个文件
java:133个
xml:29个
yml:10个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 198 浏览量
2024-04-16
14:09:00
上传
评论
收藏 234KB ZIP 举报
温馨提示
【资源说明】 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕设项目、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 3、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
java毕业设计 基于springboot+SpringCloud的线上教育项目源码+详细文档+全部资料(优秀项目).zip (180个子文件)
mvnw.cmd 6KB
.gitignore 395B
maven-wrapper.jar 50KB
HttpClientUtils.java 13KB
canalClient.java 7KB
EduCourseServiceImpl.java 6KB
WxApiController.java 5KB
HttpClient.java 5KB
TPayLogServiceImpl.java 5KB
MavenWrapperDownloader.java 5KB
EduTeacherController.java 4KB
TestVod.java 4KB
UcenterMemberServiceImpl.java 4KB
VodServiceImpl.java 3KB
StatisticsDaliyServiceImpl.java 3KB
RedisConfig.java 3KB
EduChapterServiceImpl.java 3KB
SubjectExcelListener.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
EduCourseController.java 3KB
CourseFrontController.java 3KB
AuthGlobalFilter.java 3KB
ErrorHandlerConfig.java 3KB
JwtUtils.java 3KB
UcenterMemberController.java 2KB
EduSubjectController.java 2KB
VodController.java 2KB
EduVideoController.java 2KB
EduCourse.java 2KB
TOrder.java 2KB
EduVideo.java 2KB
OssServiceImpl.java 2KB
TOrderServiceImpl.java 2KB
UcenterMember.java 2KB
MsmServiceImpl.java 2KB
JsonExceptionHandler.java 2KB
corsConfig.java 2KB
TOrderController.java 2KB
BannerAdminController.java 2KB
EduChapterController.java 2KB
EduTeacherServiceImpl.java 2KB
RandomUtil.java 2KB
EduTeacher.java 2KB
TPayLog.java 2KB
EduSubjectServiceImpl.java 2KB
UcenterMemberOrder.java 2KB
IndexFrontController.java 2KB
CrmBanner.java 2KB
TeacherFrontController.java 2KB
MsmController.java 1KB
EduVideoServiceImpl.java 1KB
CourseWebVo.java 1KB
CourseWebVoOrder.java 1KB
EduSubject.java 1KB
SwaggerConfig.java 1KB
EduChapter.java 1KB
TPayLogController.java 1KB
EduCourseDescription.java 1KB
StatisticsDaliy.java 1KB
R.java 1KB
GlobalExceptionHandler.java 1KB
EduCourseService.java 1KB
StatisticsDaliyController.java 1KB
MD5.java 1KB
CrmBannerServiceImpl.java 1KB
OssController.java 1021B
ResultCode.java 997B
ConstantVodUtils.java 988B
ConstantPropertiesUtils.java 933B
CourseInfoVo.java 903B
TestEasyExcel.java 849B
ConstantWxUtils.java 796B
VodApplication.java 768B
MyMetaObjectHandler.java 749B
SubjectData.java 748B
EduMpConfig.java 742B
ExcelListener.java 732B
VodClient.java 716B
OssApplication.java 705B
CourseFrontVo.java 702B
memberApplication.java 688B
StaApplication.java 686B
OrdersApplication.java 686B
EduApplication.java 655B
BannerFrontController.java 630B
canalApplication.java 624B
EduSubjectService.java 618B
TeacherQuery.java 608B
EduLoginController.java 599B
EduCourseDescriptionServiceImpl.java 596B
UcenterClient.java 571B
EduClient.java 568B
OrderClient.java 558B
OrderNoUtil.java 556B
EduChapterService.java 536B
UcenterMemberService.java 526B
共 180 条
- 1
- 2
资源评论
不走小道
- 粉丝: 3223
- 资源: 5113
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HTML5小游戏【阳光高尔夫球-优秀H5小游戏合集】游戏源码分享下载 - golfblast.zip
- 二层半独栋别墅结构水电施工图结构施工图.dwg
- 数据结构,常用的数据结构
- 某三层别墅建筑施工图编号D061-三层-12.54&12.24米-施工图.dwg
- 某三层别墅施工图带效果图D060-三层-23.04&15.39米- 施工图.dwg
- 流水灯,8个灯,不同花样
- TikTokPlugin-1.39-for-rezvorck.apk
- 某三层豪华型别墅建筑施工图D059-三层-27.00&16.00米- 施工图.dwg
- 11111111111111111111
- process-data-final.c
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功