gpt4 book ai didi

java - URL 包含空格的 HttpURLConnection

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:43 30 4
gpt4 key购买 nike

我有一个 url,它的一个参数包含一个空格字符。如果我按原样发送,使用 HttpURLConnection,则此参数传递错误。

如果我用 %20 手动替换空格,它会按预期工作,所以我想知道是否有更简洁的方法来执行此操作,尽管我希望 HttpURLConnection 会自动执行此操作。也许我错过了一种方法?

在寻找这个时,我不断遇到已弃用的 URLEncoder.Encode,除了对整个 URL 进行编码,包括 http 的 ://之外,我找不到任何其他方法来做我所做的事情。

是否有一种干净的方法来进行替换,还是我应该手动进行?

网址例如:http://www.domain.com?param1=name 'last&param2=2014-31-10 11:40:00param 1 包含 ' 并且 param2 包含空格和 : 但只有空格会产生问题。这就是为什么我不明白为什么 HttpUrlConnection 只对空间如此敏感。

谢谢

最佳答案

尝试这种方式,希望这能帮助您解决问题。

URLEncoder : 除字母 ('a'..'z', 'A'..'Z') 和数字 ('0'..'9') 和字符 '.', '-', '*', '_' 被转换为以 '%' 为前缀的十六进制值。

在 URLEncoder 类中有两个方法:

1.encode(String url) :此方法在 API 级别 1 中已弃用

String encodedUrl = URLEncoder.encode(url);

2.encode(String url, String charsetName) : 使用由 charsetName 命名的字符集对 url 进行编码。

String encodedUrl = URLEncoder.encode(url,"UTF-8");

使用方法:

String url ="http://www.domain.com";
String param1 ="?param1=";
Strinf param1value ="name'last";
String param2 ="&param2=";
Strinf param2value ="2014-31-10 11:40:00";
String encodeUrl = url +param1+ URLEncoder.encode(param1value,"UTF-8")+param2+URLEncoder.encode(param2value,"UTF-8");

关于java - URL 包含空格的 HttpURLConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26671056/

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