做网站要知道哪些代码,网站制作目的,成品网站源码在线观看,二手车网站开发过程之前写过基于html和js的文件上传方法java 用springMVC 和HttpServletRequest 两种实现文件上传的方法和httpClient后台执行普通post请求的文章java通过httpClient从接口请求数据入库以及自动生成实体工具类#xff0c;最近接到一个需求#xff0c;需要用到后台去调用远程服务…之前写过基于html和js的文件上传方法java 用springMVC 和HttpServletRequest 两种实现文件上传的方法和httpClient后台执行普通post请求的文章java通过httpClient从接口请求数据入库以及自动生成实体工具类最近接到一个需求需要用到后台去调用远程服务器的文件上传接口实现文件上传用到了httpClient的MultipartEntityBuilder实现。maven引入httpClient依赖org.apache.httpcomponentshttpcore4.4.13org.apache.httpcomponentshttpclient4.5.12org.apache.httpcomponentshttpmime4.5.12以上依赖是笔者成文时maven最新的依赖包。新建一个UploadFileUtil工具类package com.zhaohy.app.utils;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.ContentType;import org.apache.http.entity.mime.HttpMultipartMode;import org.apache.http.entity.mime.MultipartEntityBuilder;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class UpLoadFileUtil {private static Logger logger LoggerFactory.getLogger(UpLoadFileUtil.class);/*** 通过httpClient上传文件* param fileName* param path* return 外部域名的下载url*/public static String UploadFileByHttpClient(String fileName,String path, String url) {String result ;CloseableHttpClient httpClient HttpClients.createDefault();try {HttpPost httpPost new HttpPost(url);//HttpMultipartMode.RFC6532参数的设定是为避免文件名为中文时乱码MultipartEntityBuilder builder MultipartEntityBuilder.create().setMode(HttpMultipartMode.RFC6532);httpPost.addHeader(header1, 111);//头部放文件上传的head可自定义File file new File(pathfileName); //上传文件的路径builder.addBinaryBody(file, file, ContentType.MULTIPART_FORM_DATA, fileName);builder.addTextBody(params1, 1);//其余参数可自定义builder.addTextBody(params2, 2);HttpEntity entity builder.build();httpPost.setEntity(entity);HttpResponse response httpClient.execute(httpPost);// 执行提交HttpEntity responseEntity response.getEntity();//接收调用外部接口返回的内容if (response.getStatusLine().getStatusCode() HttpStatus.SC_OK){// 返回的内容都在content中InputStream content responseEntity.getContent();// 定义BufferedReader输入流来读取URL的响应BufferedReader in new BufferedReader(new InputStreamReader(content));String line;while ((line in.readLine()) ! null) {result line;}if(!AppFrameworkUtil.isBlank(result)) {logger.info(上传文件fileName返回参数result);}else {logger.error(上传文件失败返回result为null);}}}catch(Exception e) {logger.error(上传文件失败,e);}finally {//处理结束后关闭httpclient的链接try {httpClient.close();} catch (IOException e) {e.printStackTrace();}}return result;}}上面代码中 fileName是文件名称本地文件路径url是远程上传接口url,通过httpPost.addHeader来自定义header参数builder.addTextBody来自定义其他参数相当于html中form表单中其他的参数可解析返回来的result拿到自己想拿的信息。