如何在请求URL(Java11)中添加参数?

How to add parameter in request URL( Java 11)?

我绝对是 java 的初学者。尝试使用内置 java httpclient.

发送一些 http 请求

如何将请求参数添加到这种格式的 URI 中:

parameter = hi
url = "https://www.url.com?parameter=hi"

我用的代码,只能设置headers不能设置请求参数

    var client = HttpClient.newHttpClient();
    var request = HttpRequest.newBuilder(URI.create(url))
            .GET()
            .build();
    var reponse = client.send(request, HttpResponse.BodyHandlers.ofString());
    return reponse.body();

非常感谢!

使用本机 Java 11,必须像您一样完成。您需要在 url 参数中添加参数。或者您需要创建自己的构建器,允许您附加参数。

但是,如果您使用库,您请求的行为是可能的。一种方法是使用 Apache URIBuilder

    var client = HttpClient.newHttpClient();
    URI uri = new URIBuilder(httpGet.getURI())
            .addParameter("parameter", "hi")
            .build();
    var request = HttpRequest.newBuilder(uri)
            .GET()
            .build();
    var reponse = client.send(request, HttpResponse.BodyHandlers.ofString());
    return reponse.body();

你没有添加参数的方法,但是你可以使用String.format()来很好地格式化URL。

final static String URL_FORMAT = "http://url.com?%s=%s";
final String request = String.format(URL_FORMAT, "paramater", "hi");