gpt4 book ai didi

java - HttpURLConnection 和 URL 中的编码字符

转载 作者:行者123 更新时间:2023-11-29 09:32:33 25 4
gpt4 key购买 nike

我有这样的代码:

URL url = new URL("http://foo.com/?param=paj%E9");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
...

但是,openConnection 似乎抑制了 url 的“%E9”部分,服务器最终收到了一个请求 http://foo.com?param=paj

我是否忘记应用任何不同的设置来使其正常工作?

谢谢!

编辑:url“http://foo.com/?param=paj%E9”已经编码(来自http://foo.com/?param =pajé),这应该是服务器应该接收的请求。如果我尝试访问 http://foo.com/?param=paj%E9直接从浏览器,它按预期工作。如果我对“paj%E9”进行 URLEncode,我将对参数进行双重编码,并且服务器在解码该值时会看到“paj%E9”而不是“pajé”。我实际上是在尝试构建代理,因此我收到了已经编码的网址。问题是,每当我使用 HttpURLConnection 传递这样一个要请求的编码参数时,它只会忽略编码部分(如 %E9)。

最佳答案

您需要使用 java.net.URI 类来编码您的 URL 而不是您自己处理它。检查这个: HTTP URL Address Encoding in Java

关于java - HttpURLConnection 和 URL 中的编码字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com