Hallo ich möchte gerne einen HTTP Request mittels
Hier noch der Controller :
Wenn ich nun versuche den Controller mit Daten zu befüttern so bekomme ich immer einen Fehler :
Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'name' is not present]
Wenn ich über Postman (externes Tool) die URL aufrufe : http://localhost:8080/post?name=JOHN
Dann klappt es. daher meine Vermutung, dass der generierte Request keine Daten enthällt.
Kann mir jemand einen Tipp geben, was ich falsch mache ?
Java:
HttpClient httpClient = HttpClient.newBuilder()
.version(HttpClient.Version.HTTP_2)
.connectTimeout(Duration.ofSeconds(10))
.build();
Map<String, String> values = new HashMap<String, String>() {{
put("name", "John Doe");
}};
HttpRequest request = HttpRequest.newBuilder()
.POST(ofFormData(values))
.uri(URI.create("http://localhost:8080/post"))
.build();
log.info("send request {}", request.uri().toString());
....
private HttpRequest.BodyPublisher ofFormData(Map<String, String> data) {
var builder = new StringBuilder();
for (Map.Entry<String, String> entry : data.entrySet()) {
if (builder.length() > 0) {
builder.append("&");
}
builder.append(URLEncoder.encode(entry.getKey(), StandardCharsets.UTF_8));
builder.append("=");
builder.append(URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8));
}
log.info("request parameter : {}", builder);
return HttpRequest.BodyPublishers.ofString(builder.toString());
}
Hier noch der Controller :
Java:
@RestController
@Log4j2
public class HelloWorldController {
@PostMapping("/post")
public String sayHello(@RequestParam String name) {
log.info("HELLO {}", name);
return "HELLO " + name;
}
}
Wenn ich nun versuche den Controller mit Daten zu befüttern so bekomme ich immer einen Fehler :
Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'name' is not present]
Wenn ich über Postman (externes Tool) die URL aufrufe : http://localhost:8080/post?name=JOHN
Dann klappt es. daher meine Vermutung, dass der generierte Request keine Daten enthällt.
Kann mir jemand einen Tipp geben, was ich falsch mache ?