java post请求参数为文件

java post请求参数为文件
话不多说上代码
import org.apache.http.Consts;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.config.RequestConfig;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.entity.mime.content.StringBody;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;import org.springframework.web.multipart.MultipartFile;import java.io.IOException;import java.nio.charset.StandardCharsets;import java.util.Map;public class HttpFileUtil {    /**     * 以post方式调用第三方接口,以form-data 形式  发送 MultipartFile 文件数据     * @param url  post请求url     * @param fileParamName 文件参数名称     * @param multipartFile  文件     */    public static String doPostFormData(String url, String fileParamName, MultipartFile multipartFile, Map<String, String> paramMap) {        // 创建Http实例        CloseableHttpClient httpClient = HttpClients.createDefault();        // 创建HttpPost实例        HttpPost httpPost = new HttpPost(url);        // 请求参数配置        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000)                .setConnectionRequestTimeout(10000).build();        httpPost.setConfig(requestConfig);        try {            MultipartEntityBuilder builder = MultipartEntityBuilder.create();            builder.setCharset(StandardCharsets.UTF_8);            builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);            String fileName = multipartFile.getOriginalFilename();            // 文件流            builder.addBinaryBody(fileParamName, multipartFile.getInputStream(), ContentType.MULTIPART_FORM_DATA, fileName);            //表单中其他参数,如果没有其他参数可以注释该部分            for(Map.Entry<String, String> entry: paramMap.entrySet()) {                builder.addPart(entry.getKey(),new StringBody(entry.getValue(), ContentType.create("text/plain", Consts.UTF_8)));            }            HttpEntity entity = builder.build();            httpPost.setEntity(entity);            // 执行提交            HttpResponse response = httpClient.execute(httpPost);            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {                // 返回                String res = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);                return res;            }        } catch (Exception e) {            e.printStackTrace();        } finally {            if (httpClient != null) {                try {                    httpClient.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        return null;    }}

  

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部