gpt4 book ai didi

java - 为 HttpClient 请求转义 URL 中的 & 符号

转载 作者:搜寻专家 更新时间:2023-10-31 08:16:10 28 4
gpt4 key购买 nike

所以我有一些像这样使用 Jakarta HttpClient 的 Java 代码:

URI aURI = new URI( "http://host/index.php?title=" + title + "&action=edit" );
GetMethod aRequest = new GetMethod( aURI.getEscapedPathQuery());

问题是,如果 title 包含任何和号 (&),它们将被视为参数定界符并且请求变得很奇怪...如果我将它们替换为 URL 转义的等效 %26,然后通过 getEscapedPathQuery() 将其双重转义为 %2526

我目前正在通过基本上修复损坏来解决这个问题:

URI aURI = new URI( "http://host/index.php?title=" + title.replace("&", "%26") + "&action=edit" );
GetMethod aRequest = new GetMethod( aURI.getEscapedPathQuery().replace("%2526", "%26"));

但是必须有更好的方法来做到这一点,对吗?请注意,标题可以包含任意数量的不可预测的 UTF-8 字符等,因此需要转义其他所有字符。

最佳答案

给你:

import java.net.URLEncoder;
...
...
URI aURI = new URI( "http://host/index.php?title=" + URLEncoder.encode(title,"UTF-8") + "&action=edit" );
GetMethod aRequest = new GetMethod( aURI.getPathQuery());

检查 java.net.URLEncoder了解更多信息。

关于java - 为 HttpClient 请求转义 URL 中的 & 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2558111/

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