通过java post上传file文件

公司用到了文件上传的功能。可以通过org.apache.http文件FileBody作为参数进行传输,如reqEntity.addPart("imgFile", file);HttpClient4 的使用


import java.io.File;  
import java.io.IOException;  
  
import org.apache.http.HttpEntity;  
import org.apache.http.HttpResponse;  
import org.apache.http.HttpStatus;  
import org.apache.http.client.ClientProtocolException;  
import org.apache.http.client.HttpClient;  
import org.apache.http.client.methods.HttpPost;  
import org.apache.http.entity.mime.MultipartEntity;  
import org.apache.http.entity.mime.content.FileBody;  
import org.apache.http.entity.mime.content.StringBody;  
import org.apache.http.impl.client.DefaultHttpClient;  
import org.apache.http.util.EntityUtils;  
  
public class ClientMultipartFormPost {  
  
    public static void main(String[] args) throws ClientProtocolException, IOException {  
          
      HttpClient httpclient = new DefaultHttpClient();  
			//BasicHttpParams httpParams = new BasicHttpParams();//注释的代码是其他设置和额外参数
			//HttpConnectionParams.setConnectionTimeout(httpParams, 25 * 1000);
			//HttpConnectionParams.setSoTimeout(httpParams, 25 * 1000);
			//httpclient = new DefaultHttpClient(httpParams);
			//CredentialsProvider credsProvider = new BasicCredentialsProvider();
			//UsernamePasswordCredentials creds = new UsernamePasswordCredentials("root", "system");
			//credsProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), creds);
			//((DefaultHttpClient) httpclient).setCredentialsProvider(credsProvider);
          
      try {  //上传文件路径
            HttpPost httppost = new HttpPost("http://write.blog.csdn.net/postedit");  

          
            FileBody bin = new FileBody(new File("文件路径"));  
              
            StringBody comment = new StringBody("参数1");  
          
            MultipartEntity reqEntity = new MultipartEntity();  //建立多文件实体
             
            reqEntity.addPart("upload", bin);//upload为请求后台的File upload;属性  
              
            reqEntity.addPart("str", comment);//str 为请求后台的String str;属性  
          
            httppost.setEntity(reqEntity);  //设置实体
          
            HttpResponse response = httpclient.execute(httppost);  
              
            int statusCode = response.getStatusLine().getStatusCode();  
              
            if(statusCode == HttpStatus.SC_OK){  
                  
                HttpEntity resEntity = response.getEntity();  
                  
                System.out.println(EntityUtils.toString(resEntity));//httpclient自带的工具类读取返回数据  
              
                EntityUtils.consume(resEntity);  
  
            }  
              
        } finally {  
            try {   
                httpclient.getConnectionManager().shutdown();   
            } catch (Exception ignore) {  
                  
            }  
        }  
    }  
}  


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java中使用POST请求上传文件的示例代码: ```java import java.io.File; import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; 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.FileBody; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; public class FileUploader { public static void main(String[] args) { String url = "http://example.com/upload"; String filePath = "/path/to/file"; HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost(url); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); File file = new File(filePath); FileBody fileBody = new FileBody(file, ContentType.DEFAULT_BINARY); builder.addPart("file", fileBody); HttpEntity entity = builder.build(); httpPost.setEntity(entity); try { HttpResponse response = httpClient.execute(httpPost); HttpEntity responseEntity = response.getEntity(); String responseString = EntityUtils.toString(responseEntity, "UTF-8"); System.out.println(responseString); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在这个示例中,我们使用了Apache HttpClient库来发送POST请求。我们首先创建一个HttpClient实例,然后创建一个HttpPost实例,并将要上传文件添加到MultipartEntityBuilder中。最后,我们将MultipartEntityBuilder构建为一个HttpEntity,并将其设置为HttpPost的实体。最后,我们执行HttpPost请求并获取响应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值