首页

java模仿http表单提交数据(含文件上传)实例源码

java

2020-7-22

java模仿http表单提交数据、模仿http表单上传文件示例

package com.snca.cloudsign.main;

import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;

import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
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.util.EntityUtils;

public class CloudSignRestUtil {
    
    /**
     * 正常数据请求
     * @param url
     * @param data
     * @return
     */
    public static String commDataRequest(String url,String data)throws ClientProtocolException,ParseException,IOException{
        HttpPost httpPost = new HttpPost(url);
        CloseableHttpClient httpClient = null;
        CloseableHttpResponse response = null;
        httpClient = HttpClients.createDefault();
        HttpEntity entity = new StringEntity(data,Consts.UTF_8);
        httpPost.setEntity(entity);
        httpPost.addHeader("Content-Type", "application/json");
        httpPost.setEntity(entity);
        try {
            response = httpClient.execute(httpPost);
            return EntityUtils.toString(response.getEntity(),Charset.forName("UTF-8"));
        }finally {
                if(response != null){
                    response.close();
                }
                if(httpClient != null){
                    httpClient.close();
                }
        }
    }
    
    /**
     * 带文件的数据接口请求
     * @param url
     * @param data
     * @return
     */
    public static String fileDataRequest(String url,String data,File pdfFile)throws ClientProtocolException,ParseException,IOException{
        CloseableHttpClient httpClient = null;
        CloseableHttpResponse response = null;
        try{
            httpClient = HttpClients.createDefault();
            StringBody requestData = new StringBody(data, ContentType.create(
                    "text/plain", Consts.UTF_8));
            FileBody bin = new FileBody(pdfFile);
            HttpEntity entity = MultipartEntityBuilder.create()
                    .addPart("pdfFile", bin)
                    .addPart("requestData", requestData)
                    .build();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(entity);
            // 发起请求 并返回请求的响应
            response = httpClient.execute(httpPost);
            // 获取响应对象
            HttpEntity resEntity = response.getEntity();
            String responseStr =  EntityUtils.toString(response.getEntity(),Charset.forName("UTF-8"));
            // 销毁
            EntityUtils.consume(resEntity);
            return responseStr;
      }finally {
            if(response != null){
                response.close();
            }
            if(httpClient != null){
                httpClient.close();
            }
      }
    }
    
}

资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
cloudsign_api_client/.classpath , 867
cloudsign_api_client/.project , 396
cloudsign_api_client/.settings/org.eclipse.core.resources.prefs , 93
cloudsign_api_client/.settings/org.eclipse.jdt.core.prefs , 598
cloudsign_api_client/bin/com/snca/cloudsign/client/SM3.class , 5783
cloudsign_api_client/bin/com/snca/cloudsign/client/SM3Digest.class , 3396
cloudsign_api_client/bin/com/snca/cloudsign/main/CloudSignRestUtil.class , 3915
cloudsign_api_client/bin/com/snca/cloudsign/main/MainTest.class , 210955
cloudsign_api_client/bin/lib/TZKey.jar , 23308
cloudsign_api_client/bin/lib/castor-1.2.jar , 864598
cloudsign_api_client/bin/lib/commons-io-2.4.jar , 185140
cloudsign_api_client/bin/lib/commons-logging-1.1.3.jar , 62050
cloudsign_api_client/bin/lib/httpclient-4.5.3.jar , 747794
cloudsign_api_client/bin/lib/httpcore-4.4.7.jar , 325123
cloudsign_api_client/bin/lib/httpmime-4.5.3.jar , 41029
cloudsign_api_client/src/com/snca/cloudsign/client/SM3.java , 10360
cloudsign_api_client/src/com/snca/cloudsign/client/SM3Digest.java , 4272
cloudsign_api_client/src/com/snca/cloudsign/main/CloudSignRestUtil.java , 3163
cloudsign_api_client/src/com/snca/cloudsign/main/MainTest.java , 210962
cloudsign_api_client/src/lib/TZKey.jar , 23308
cloudsign_api_client/src/lib/castor-1.2.jar , 864598
cloudsign_api_client/src/lib/commons-io-2.4.jar , 185140
cloudsign_api_client/src/lib/commons-logging-1.1.3.jar , 62050
cloudsign_api_client/src/lib/httpclient-4.5.3.jar , 747794
cloudsign_api_client/src/lib/httpcore-4.4.7.jar , 325123
cloudsign_api_client/src/lib/httpmime-4.5.3.jar , 41029
没有账号? 忘记密码?

社交账号快速登录