以正确的方式使用 Java 11 HttpClient 和 URL 编码 [已关闭]

问题描述 投票:0回答:1

因此,我使用 Java SDK 中的 http 客户端来防止使用任何相关库。

但事实证明,客户端本身并不处理 URL 编码,例如有一个查询

HttpRequest request = HttpRequest.newBuilder()
.uri(new URI("https://postman-echo.com/get?q=Test Abc 1,2&3 ABCq"))
.GET()
.build(); 

导致后端的值不正确。

处理编码的最佳方法是什么?我在项目中没有任何依赖项。

java http url encoding
1个回答
-1
投票

如果您使用 spring,您可以使用函数对路径进行编码

import org.springframework.web.util.UriUtils

UriUtils.encodePath(path, "UTF-8")

路径是你的字符串。

如果你不使用spring而只想使用JAVA SDK功能你可以使用这种方法

String url = "https://postman-echo.com" + 
       URLEncoder.encode("get?q=Test Abc 1,2&3 ABCq","UTF-8");

两种方法都提供如下结果:

"http://postman-echo.com/get%3Fq=Test%20Abc%201,2&3%20ABCq"
© www.soinside.com 2019 - 2024. All rights reserved.