package com.feelcode.tourism.base.utils;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
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.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
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;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @auther: 朱利尔
* @Description:
* @date: 15:12 2020/5/8
* @param:
* @return:
*/
public class HttpClientUtils {
/**
* 最大线程池
*/
public static final int THREAD_POOL_SIZE = 5;
public interface HttpClientDownLoadProgress {
public void onProgress(int progress);
}
private static HttpClientUtils httpClientDownload;
private ExecutorService downloadExcutorService;
private HttpClientUtils() {
downloadExcutorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);
}
public static HttpClientUtils getInstance() {
if (httpClientDownload == null) {
httpClientDownload = new HttpClientUtils();
}
return httpClientDownload;
}
/**
* 下载文件
*
* @param url
* @param filePath
*/
public void download(final String url, final String filePath) {
downloadExcutorService.execute(new Runnable() {
@Override
public void run() {
httpDownloadFile(url, filePath, null, null);
}
});
}
/**
* 下载文件
*
* @param url
* @param filePath
* @param progress
* 进度回调
*/
public void download(final String url, final String filePath,
final HttpClientDownLoadProgress progress) {
downloadExcutorService.execute(new Runnable() {
@Override
public void run() {
httpDownloadFile(url, filePath, progress, null);
}
});
}
/**
* 下载文件
*
* @param url
* @param filePath
*/
private void httpDownloadFile(String url, String filePath,
HttpClientDownLoadProgress progress, Map<String, String> headMap) {
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpGet httpGet = new HttpGet(url);
setGetHead(httpGet, headMap);
CloseableHttpResponse response1 = httpclient.execute(httpGet);
try {
System.out.println(response1.getStatusLine());
HttpEntity httpEntity = response1.getEntity();
long contentLength = httpEntity.getContentLength();
InputStream is = httpEntity.getContent();
// 根据InputStream 下载文件
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int r = 0;
long totalRead = 0;
while ((r = is.read(buffer)) > 0) {
output.write(buffer, 0, r);
totalRead += r;
if (progress != null) {// 回调进度
progress.onProgress((int) (totalRead * 100 / contentLength));
}
}
FileOutputStream fos = new FileOutputStream(filePath);
output.writeTo(fos);
output.flush();
output.close();
fos.close();
EntityUtils.consume(httpEntity);
} finally {
response1.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* get请求
*
* @param url
* @return
*/
public String httpGet(String url) {
return httpGet(url, null);
}
/**
* http get请求
*
* @param url
* @return
*/
public String httpGet(String url, Map<String, String> headMap) {
String responseContent = null;
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpGet httpGet = new HttpGet(url);
CloseableHttpResponse response1 = httpclient.execute(httpGet);
setGetHead(httpGet, headMap);
try {
System.out.println(response1.getStatusLine());
HttpEntity entity = response1.getEntity();
responseContent = getRespString(entity);
System.out.println("debug:" + responseContent);
EntityUtils.consume(entity);
} finally {
response1.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return responseContent;
}
public String httpPost(String url, Map<String, String> paramsMap) {
return httpPost(url, paramsMap, null);
}
/**
* http的post请求
*
* @param url
* @param paramsMap
* @return
*/
public String httpPost(String url, Map<String, String> paramsMap,
Map<String, String> headMap) {
String responseContent = null;
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpPost httpPost = new HttpPost(url);
setPostHead(httpPost, headMap);
setPostParams(httpPost, paramsMap);
CloseableHttpResponse response = httpclient.execute(httpPost);
try {
System.out.println(response.getStatusLine());
HttpEntity entity = response.getEntity();
responseContent = getRespString(entity);
EntityUtils.consume(entity);
} finally {
response.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("responseContent = " + responseContent);
return responseContent;
}
/**
* 设置POST的参数
*
* @param httpPost
* @param paramsMap
* @throws Exception
*/
private void setPostParams(HttpPost httpPost, Map<String, String> paramsMap)
throws Exception {
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
随着人均收入水平的提高,旅游消费越来越成为大众休闲娱乐方式。随着互联网越来越普及,大多数旅游公司依然采用传统人工的方式进行管理,其管理模式的效率显著低下。 首先旅游行业是对客户个人信息的保护不够,出现大量信息外泄的现象。二是由于旅游信息的不对称,很多旅行社对现代旅游管理信息系统不熟悉,无法通过网络的方式推广公司业务,从而导致大量客源流失。 旅行社想在激烈的旅游市场中获得长足发展,就要采用现代技术来提高自身服务水平。与采用Word,Excel等电子文档、表格等传统的方式进行旅游信息的管理相比,旅游信息管理系统的应用能使得旅游管理者实现经济效益的提升。此外,旅游活动受到自然,经济,政治,文化多种因素影响,因此如何使游客在较短的时间内了解旅游目的地的相关信息也是旅行社成功的关键。
资源详情
资源评论
资源推荐
收起资源包目录
旅游项目代码实现文件,旅游在线平台的设计与实现 (134个子文件)
HttpClientUtils.java 15KB
RedisUtil.java 12KB
SpotsClientController.java 6KB
UserClientController.java 6KB
IndexServiceImpl.java 6KB
RedisConfig.java 5KB
OrderClientController.java 5KB
SpotsServiceImpl.java 5KB
HotelServiceImpl.java 5KB
HotelClientController.java 5KB
LineController.java 5KB
LineClientController.java 5KB
UserController.java 4KB
HotelController.java 4KB
CommentClientController.java 4KB
SpotsController.java 4KB
GroupController.java 4KB
OrderController.java 4KB
PlaneController.java 4KB
PlaneClientController.java 4KB
OrderServiceImpl.java 3KB
IndexResponseDTO.java 2KB
UserServiceImpl.java 2KB
GroupServiceImpl.java 2KB
OrderDao.java 2KB
PlaneServiceImpl.java 2KB
LineServiceImpl.java 2KB
CommentDao.java 2KB
CommentServiceImpl.java 1KB
indexController.java 1KB
RedisTemplate.java 1KB
Hotel.java 1KB
Comment.java 1KB
Plane.java 1KB
FastJson2JsonRedisSerializer.java 1KB
ScoreServiceImpl.java 1KB
OrderNoGenerateUtils.java 1KB
Order.java 1KB
Spots.java 1KB
FileUtils.java 982B
BaseEntity.java 976B
RedisConstants.java 966B
HotelUser.java 966B
Line.java 945B
CFUtils.java 921B
ScoreDao.java 910B
PlaneUser.java 905B
Group.java 876B
SpotsDao.java 832B
User.java 800B
BaseController.java 790B
HotelRequestPageDTO.java 766B
SpotsService.java 747B
TourismApplication.java 730B
OrderService.java 723B
HotelService.java 709B
SystemConstant.java 667B
UserDao.java 659B
HotelDao.java 651B
PlaneDao.java 651B
LineDao.java 645B
GroupDao.java 644B
GroupService.java 620B
CommentController.java 606B
PlaneService.java 577B
UserService.java 576B
CommentService.java 568B
LineService.java 565B
OrderDateCountVO.java 502B
ScoreService.java 484B
Score.java 482B
UUIDUtils.java 445B
SpotsRequestPageDTO.java 438B
IndexService.java 353B
SpotsRecommendListResponsePageDTO.java 351B
BaseSessionEntity.java 316B
CommentResponsePageDTO.java 314B
CommentRequestPageDTO.java 311B
GroupResponsePageDTO.java 308B
HotelResponsePageDTO.java 307B
LineDetailResponseDTO.java 304B
OrderRequestPageDTO.java 271B
StateParameter.java 251B
UserSessionEntity.java 245B
GroupRequestPageDTO.java 244B
PlaneRequestPageDTO.java 243B
LineRequestPageDTO.java 242B
CommonResponsePageDTO.java 225B
IndexRequestDTO.java 211B
CommonRequestPageDTO.java 203B
PlaneResponsePageDTO.java 201B
OrderResponsePageDTO.java 201B
SpotsResponsePageDTO.java 201B
UserResponsePageDTO.java 198B
LineResponsePageDTO.java 198B
UserRequestPageDTO.java 138B
tourism_preview旅游网站预览说明.png 29.09MB
tourism_pro_login.png 6.51MB
tourism_pro_login_2.png 6.39MB
tourism_pro_line_detail.png 3.05MB
共 134 条
- 1
- 2
学习微站公众平台
- 粉丝: 2w+
- 资源: 37
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0