gpt4 book ai didi

java - 使用 UrlEncode 在 Apachi Http Client 表单中正确编码百分号 (%)

转载 作者:行者123 更新时间:2023-12-04 21:28:55 34 4
gpt4 key购买 nike

这似乎是一个非常简单的问题,但可惜我无法弄清楚,也无法在其他任何地方找到解决方案。我正在连接一个内部有 % 的字符串,出于某种原因,它在 % 之后添加了数字 25。有人知道这个简单问题的解决方案吗?

String buttonCheck = "%26" + DATABASE.getValue("buttonCheck") + "%26";

出来

"%2526value%2526"

编辑:很明显问题实际上是在 URL 编码中,我将向该问题添加更多相关数据。

我正在开发一个 Android 应用程序,它从网站解析 HTML 并允许用户通过 Android UI 与之交互。我在将 % 编码为表单参数时遇到问题。

public class CLASS extends Activity
{
DefaultHttpClient client = new DefaultHttpClient;
String url = "http://www.url.com"
HttpRequestBase method = new HttpPost(url);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add("buttoncheck", "%26" + DATABASE.getValue("buttonCheck") + "%26");
//DATABASE is simply a class that handles a HashMap

HttpPost methodPost = (HttpPost) method;
methodPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
execute(method);
}

而不是发送表单值

buttoncheck=%26value%26

我明白了

buttoncheck=%2526value%2526

最佳答案

它不会在 buttonCheck 中显示为“%2526value%2526”。我强烈怀疑您稍后会查看一个值 - 例如,在 URI 编码之后。弄清楚是什么在进行编码,以及您实际上想要编码的内容。

需要说明的是,25 与 26 完全不同。如果完全去掉 26,您会看到相同的结果,使用

String buttonCheck = "%" + DATABASE.getValue("buttonCheck") + "%";

那时我想你会得到

%25value%25

基本上只是将 % 编码为 %25。例如,这样做:

import java.net.*;

public class Test {
public static void main(String[] args) throws Exception {
String input = "%value%";
String encoded = URLEncoder.encode(input, "utf-8");
System.out.println(encoded); // Prints %25value%25
}
}

关于java - 使用 UrlEncode 在 Apachi Http Client 表单中正确编码百分号 (%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3757847/

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