java HttpRequest uri未正确解析url
我想使用JavaHTTP客户机(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×tamp=1596637676
如果我用ipv4地址替换my_docker_service_name
,http请求将按预期工作
你知道我可能做错了什么吗
非常感谢你的帮助
# 1 楼答案
我发现我的请求存在问题:uri包含的下划线在http java客户机上不受支持,正如这个答案所述https://stackoverflow.com/a/28568413/6744511