RESTEasy使用httpclient上传文件
2014-02-26 10:13
169 查看
我们使用resteasy-multipart的MultipartFormDataInput类来操作数据。
1) 更新maven项目依赖
添加下面的maven依赖到你的项目:
同样也添加以下图片中的jar包,到你的项目依赖中:
2) 准备http
client,用于客户端上传文件:
1) 更新maven项目依赖
添加下面的maven依赖到你的项目:
<!-- core library --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>2.3.1.GA</version> </dependency> <dependency> <groupId>net.sf.scannotation</groupId> <artifactId>scannotation</artifactId> <version>1.0.2</version> </dependency> <!-- JAXB provider --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxb-provider</artifactId> <version>2.3.1.GA</version> </dependency> <!-- Multipart support --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-multipart-provider</artifactId> <version>2.3.1.GA</version> </dependency> <!-- For better I/O control --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.0.1</version> </dependency>
同样也添加以下图片中的jar包,到你的项目依赖中:
2) 准备http
client,用于客户端上传文件:
package com.howtodoinjava.client.upload; import java.io.File; import org.apache.http.HttpResponse; 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; public class DemoFileUploader { public static void main(String args[]) throws Exception { DemoFileUploader fileUpload = new DemoFileUploader () ; File file = new File("C:/Lokesh/Setup/workspace/RESTfulDemoApplication/target/classes/Tulips.jpg") ; //Upload the file fileUpload.executeMultiPartRequest("http://localhost:8080/RESTfulDemoApplication/user-management/image-upload", file, file.getName(), "File Uploaded :: Tulips.jpg") ; } public void executeMultiPartRequest(String urlString, File file, String fileName, String fileDescription) throws Exception { HttpClient client = new DefaultHttpClient() ; HttpPost postRequest = new HttpPost (urlString) ; try { //Set various attributes MultipartEntity multiPartEntity = new MultipartEntity () ; multiPartEntity.addPart("fileDescription", new StringBody(fileDescription != null ? fileDescription : "")) ; multiPartEntity.addPart("fileName", new StringBody(fileName != null ? fileName : file.getName())) ; FileBody fileBody = new FileBody(file, "application/octect-stream") ; //Prepare payload multiPartEntity.addPart("attachment", fileBody) ; //Set to request body postRequest.setEntity(multiPartEntity) ; //Send request HttpResponse response = client.execute(postRequest) ; //Verify response if any if (response != null) { System.out.println(response.getStatusLine().getStatusCode()); } } catch (Exception ex) { ex.printStackTrace() ; } } }
相关文章推荐
- RESTEasy文件上传,使用html form表格
- Android网络编程之使用HttpClient批量上传文件(二)AsyncTask+HttpClient并实现上传进度监听
- 使用httpclient-4.5.2以form表单形式上传文件 java
- SharePoint REST API - 使用REST API和jQuery上传一个文件
- Android网络编程之使用HttpClient和MultipartEntityBuilder 批量同时上传文件和文字
- 使用httpclient模拟表单上传文件,后台用struts2接收
- 使用HttpClient实现文件和其他表单数据的上传
- Java:使用HttpClient进行POST和GET请求以及文件上传和下载
- httpClient使用详解和上传文件到指定的http地址
- 网络编程之使用HttpClient上传文件的客户端和服务器
- Android使用HttpClient实现文件上传到PHP服务器,并监控进度条
- Android使用HttpClient实现文件上传到PHP服务器,并监控进度条
- 使用HttpClient实现文件的上传下载
- node.js+android(使用HttpURLConnection和HttpClient)实现文件上传
- Android 网络编程使用httpClient批量上传文件并监听进度
- Android 使用AsyncHttpClient文件上传与下载
- 使用RestTemplate上传文件
- 使用HttpClient上传文件
- 使用HttpClient实现文件的上传下载
- 使用Httpclient(post请求)上传文件及其他参数到https协议的服务器