Skip to content

Commit babb36c

Browse files
authored
Merge pull request eugenp#8315 from albanoj2/BAEL-3559
BAEL-3559: Added purpose-built endpoint for testing multipart uploads with HttpClient
2 parents d5eb1b8 + 26f4ea1 commit babb36c

2 files changed

Lines changed: 63 additions & 5 deletions

File tree

httpclient/src/test/java/org/baeldung/httpclient/HttpClientMultipartLiveTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class HttpClientMultipartLiveTest {
3434
// No longer available
3535
// private static final String SERVER = "http://echo.200please.com";
3636

37-
private static final String SERVER = "http://posttestserver.com/post.php";
37+
private static final String SERVER = "http://localhost:8080/spring-mvc-java/stub/multipart";
3838
private static final String TEXTFILENAME = "temp.txt";
3939
private static final String IMAGEFILENAME = "image.jpg";
4040
private static final String ZIPFILENAME = "zipFile.zip";
@@ -84,7 +84,7 @@ public final void givenFileandMultipleTextParts_whenUploadwithAddPart_thenNoExce
8484
//
8585
final MultipartEntityBuilder builder = MultipartEntityBuilder.create();
8686
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
87-
builder.addPart("upfile", fileBody);
87+
builder.addPart("file", fileBody);
8888
builder.addPart("text1", stringBody1);
8989
builder.addPart("text2", stringBody2);
9090
final HttpEntity entity = builder.build();
@@ -112,7 +112,7 @@ public final void givenFileandTextPart_whenUploadwithAddBinaryBodyandAddTextBody
112112
final String message = "This is a multipart post";
113113
final MultipartEntityBuilder builder = MultipartEntityBuilder.create();
114114
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
115-
builder.addBinaryBody("upfile", file, ContentType.DEFAULT_BINARY, TEXTFILENAME);
115+
builder.addBinaryBody("file", file, ContentType.DEFAULT_BINARY, TEXTFILENAME);
116116
builder.addTextBody("text", message, ContentType.DEFAULT_BINARY);
117117
final HttpEntity entity = builder.build();
118118
post.setEntity(entity);
@@ -141,7 +141,7 @@ public final void givenFileAndInputStreamandText_whenUploadwithAddBinaryBodyandA
141141
final String message = "This is a multipart post";
142142
final MultipartEntityBuilder builder = MultipartEntityBuilder.create();
143143
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
144-
builder.addBinaryBody("upfile", file, ContentType.DEFAULT_BINARY, IMAGEFILENAME);
144+
builder.addBinaryBody("file", file, ContentType.DEFAULT_BINARY, IMAGEFILENAME);
145145
builder.addBinaryBody("upstream", inputStream, ContentType.create("application/zip"), ZIPFILENAME);
146146
builder.addTextBody("text", message, ContentType.TEXT_PLAIN);
147147
final HttpEntity entity = builder.build();
@@ -165,7 +165,7 @@ public final void givenCharArrayandText_whenUploadwithAddBinaryBodyandAddTextBod
165165
final byte[] bytes = "binary code".getBytes();
166166
final MultipartEntityBuilder builder = MultipartEntityBuilder.create();
167167
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
168-
builder.addBinaryBody("upfile", bytes, ContentType.DEFAULT_BINARY, TEXTFILENAME);
168+
builder.addBinaryBody("file", bytes, ContentType.DEFAULT_BINARY, TEXTFILENAME);
169169
builder.addTextBody("text", message, ContentType.TEXT_PLAIN);
170170
final HttpEntity entity = builder.build();
171171
post.setEntity(entity);
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package com.baeldung.web.controller;
2+
3+
import org.springframework.http.HttpStatus;
4+
import org.springframework.http.ResponseEntity;
5+
import org.springframework.stereotype.Controller;
6+
import org.springframework.web.bind.annotation.PostMapping;
7+
import org.springframework.web.multipart.MultipartFile;
8+
9+
@Controller
10+
public class MultipartFileUploadStubController {
11+
12+
@PostMapping("/stub/multipart")
13+
public ResponseEntity<UploadResultResource> uploadFile(MultipartFile file, String text, String text1, String text2, MultipartFile upstream) {
14+
UploadResultResource result = new UploadResultResource(file, text, text1, text2, upstream);
15+
return new ResponseEntity<>(result, HttpStatus.OK);
16+
}
17+
18+
public static class UploadResultResource {
19+
20+
private final String file;
21+
private final String text;
22+
private final String text1;
23+
private final String text2;
24+
private final String upstream;
25+
26+
public UploadResultResource(MultipartFile file, String text, String text1, String text2, MultipartFile upstream) {
27+
this.file = format(file);
28+
this.text = text;
29+
this.text1 = text1;
30+
this.text2 = text2;
31+
this.upstream = format(upstream);
32+
}
33+
34+
private static String format(MultipartFile file) {
35+
return file == null ? null : file.getOriginalFilename() + " (size: " + file.getSize() + " bytes)";
36+
}
37+
38+
public String getFile() {
39+
return file;
40+
}
41+
42+
public String getText() {
43+
return text;
44+
}
45+
46+
public String getText1() {
47+
return text1;
48+
}
49+
50+
public String getText2() {
51+
return text2;
52+
}
53+
54+
public String getUpstream() {
55+
return upstream;
56+
}
57+
}
58+
}

0 commit comments

Comments
 (0)