Java >> Java tutorial >  >> Tag >> HTTP

Java 11:Ny HTTP-klient sender POST-anmodninger med x-www-form-urlencoded parametre

Jeg tror, ​​at følgende er den bedste måde at opnå dette ved at bruge Java 11:

Map<String, String> parameters = new HashMap<>();
parameters.put("a", "get_account");
parameters.put("account", account);

String form = parameters.keySet().stream()
        .map(key -> key + "=" + URLEncoder.encode(parameters.get(key), StandardCharsets.UTF_8))
        .collect(Collectors.joining("&"));

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder().uri(URI.create(this.url))
        .headers("Content-Type", "application/x-www-form-urlencoded")
        .POST(BodyPublishers.ofString(form)).build();

HttpResponse<?> response = client.send(request, BodyHandlers.ofString());

System.out.println(response.statusCode() + response.body().toString());

Java tag