首页 > 代码库 > httpclient 实现文件上传中转
httpclient 实现文件上传中转
开发功能:
web前端提交上传文件 —> a服务器接收 —> 转发到b服务器进行文件处理
下面是简单实现的代码,具体细节优化根本自己的需求更改。
public String handleResponse(HttpServletRequest request, HttpServletResponse response)
throws UnsupportedEncodingException, IOException {
String method = request.getMethod();
String url = "b服务器的api url";
if (method.equals("POST")) {
String contentType = "application/json; charset=UTF-8";
if (request.getContentType() != null)
contentType = request.getContentType();// 会获取到空指针
Map<String, String[]> tmp = new HashMap(request.getParameterMap());
if (contentType.toLowerCase().startsWith("multipart/")) {
MultipartHttpServletRequest multipartRequest = WebUtils.getNativeRequest(request,
MultipartHttpServletRequest.class);
MultipartFile file = multipartRequest.getFile("file");
return httpClientUpload(url, file, tmp);
}
}
return null;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
public String httpClientUpload(String url, MultipartFile file, Map<String, String[]> params)
throws ClientProtocolException, IOException {
HttpClient httpclient = new DefaultHttpClient();
// 请求处理页面
HttpPost httppost = new HttpPost(url);
// 创建待处理的文件
String fileName = file.getOriginalFilename();
ContentBody files = new ByteArrayBody(file.getBytes(), fileName);
// 对请求的表单域进行填充
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("file", files);
if (params != null) {//这里草草处理values[]
for (String key : params.keySet()) {
String[] values = params.get(key);
for (int i = 0; i < values.length; i++) {
String value = http://www.mamicode.com/values[i];"hljs-keyword">try {
value = http://www.mamicode.com/URLEncoder.encode(value, "UTF-8");
reqEntity.addPart(key, new StringBody(value));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
// 设置请求
httppost.setEntity(reqEntity);
// 执行
HttpResponse response = httpclient.execute(httppost);
if (HttpStatus.SC_OK == response.getStatusLine().getStatusCode()) {
HttpEntity entity = response.getEntity();
return EntityUtils.toString(entity, Charset.forName("UTF-8"));
}
return null;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244545
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244541
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244538
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244527
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244528
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244529
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244530
httpclient 实现文件上传中转
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。