首页 > 解决方案 > 如何在请求 URL(Java 11)中添加参数?

问题描述

我是java的绝对初学者。尝试使用内置的 java httpclient 发送一些 http 请求。

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

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

使用我正在使用的代码,我只能设置标头,但不能设置请求参数

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

非常感谢你!

标签: javahttpclient

解决方案


对于本机 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();

推荐阅读