3

Я использую Spring as Technology. Apache HttpClient для вызова Webservice. Основная цель - загрузить Multipart File (Файл не является файлом изображения или видеофайлом). но тут Мое требование немного другое. Пожалуйста, проверьте ниже изображение.Java: отправить многостраничный файл в RESTWebservice

enter image description here

Здесь Вы можете увидеть первый блок. Это простой графический интерфейс, имеющий только 2 входных тега вместе с соответствующим тегом формы.

Во втором блоке существует RESTFul Webservice, который принимает файл Multipart как параметр и обрабатывает его. (Это делается).
Теперь я застрял здесь. Я хочу отправить этот файл Multipart в другой RESTFul Webservice, который использует только файл Multipart.

код сниппета успокоительной Webservice: (Комментировал некоторые вопросы, нужно ваше предложение)

@RequestMapping(value="/project/add") 
public @ResponseBody String addURLListToQueue(
     @RequestParam(value = "file") MultipartFile file, 
     @RequestParam(value = "id1", defaultValue = "notoken") String projectName, 
     @RequestParam(value = "id2", defaultValue = "notoken") String id2, 
     @RequestParam(value = "id3", defaultValue = "notoken") String id3){ 

HttpClient httpclient = new DefaultHttpClient(); 
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); 

HttpPost httppost = new HttpPost("http://localhost:8080/fs/project/add"); 

// 1) Do I need to convert it into File object? (tried but faced 400 Error) 
// 2) Is there any provision to send Multipart File as it is? 

MultipartEntity mpEntity = new MultipartEntity(); 
ContentBody cbFile = new FileBody(file, "multipart/form-data"); 
mpEntity.addPart("file", cbFile); 


httppost.setEntity(mpEntity); 
System.out.println("executing request " + httppost.getRequestLine()); 
HttpResponse response = httpclient.execute(httppost); 
HttpEntity resEntity = response.getEntity(); 

System.out.println(response.getStatusLine()); 
if (resEntity != null) { 
    System.out.println(EntityUtils.toString(resEntity)); 
} 
if (resEntity != null) { 
    resEntity.consumeContent(); 
} 

httpclient.getConnectionManager().shutdown(); 
} 

} 

Вопросы: Как отправить Multipart файл в успокоительной Webservice с помощью HttpClient?

+0

следовать этому link.https: //www.youtube.com/watch v = yr01OEk6FfM –

+0

Вы используете CXF или Джерси, чтобы построить RESTful сервис? – Garry

+0

@PrafulMakani: Я просто просмотрел это видео. Это не соответствует моему требованию. Я хочу отправить многостраничный файл с помощью Apache Httpclient. – Ronnie

ответ

0

Вы можете проверить это file upload apache http client?

Также

HttpPost post = new HttpPost("http://echo.200please.com"); 
InputStream inputStream = new FileInputStream(zipFileName); 
File file = new File(imageFileName); 
String message = "This is a multipart post"; 
MultipartEntityBuilder builder = MultipartEntityBuilder.create();   
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 
builder.addBinaryBody 
    ("upfile", file, ContentType.DEFAULT_BINARY, imageFileName); 
builder.addBinaryBody 
    ("upstream", inputStream, ContentType.create("application/zip"), zipFileName); 
builder.addTextBody("text", message, ContentType.TEXT_PLAIN); 
// 
HttpEntity entity = builder.build(); 
post.setEntity(entity); 
HttpResponse response = client.execute(post); 

Source

Смежные вопросы