【问题标题】:HttpRequest uri does not parse correctly the urlHttpRequest uri 无法正确解析 url
【发布时间】:2020-08-05 16:07:17
【问题描述】:

我想使用 java http 客户端 (HttpClient) 进行 http 查询。 我正在查询的服务器是 Docker 上的一个服务,我可以使用它的服务名称访问它。

这是我的代码:


            URIBuilder uriBuilder = new URIBuilder()
                .setScheme("http")
                .setHost("my_docker_service_name:5000" + "/balance/")
                .setParameter("account_id", "1")
                .setParameter("timestamp", "1596637676")
            ;


            HttpRequest httpRequest = HttpRequest.newBuilder()
                .GET()
                .uri(uriBuilder.build())
                .build();

这样我得到以下错误:

java.lang.IllegalArgumentException: unsupported URI http://my_docker_service_name:5000/?account_id=1&timestamp=1596637676

如果我用 ipv4 地址替换 my_docker_service_name,http 请求会按预期工作。

你知道我做错了什么吗?

非常感谢您的帮助

【问题讨论】:

    标签: java docker http httpclient docker-swarm


    【解决方案1】:

    我发现我的请求存在问题:uri 包含 http java 客户端不支持的下划线,如此答案https://stackoverflow.com/a/28568413/6744511 中所述

    【讨论】:

      猜你喜欢
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 2020-08-05
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多