gpt4 book ai didi

java - 如何在Java中将字符串转换为x-www-form-urlencoded?

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:18 24 4
gpt4 key购买 nike

我有一个字符串

"To=\"+911234567899\"&From=\"+9987654321\"&Body=\"Hen\""

我需要将其转换为 x-www-form-urlencoded 格式。

如果我在 Java 中使用 URLEncoder.encode(),该函数会将字符串转换为

To%3D%22%2B911234567899%22%26From%3D%22%2B9987654321%22%26Body%3D%22Hen%22

但是当我将 postman 的请求作为 x-www-form-urlencoded 发送时,发送的请求是

To=%22%2B911234567899%22&From=%22%2B9987654321%22&Body=%22Hen%22

为什么会出现这种差异?另外,我需要发送请求,因为它在 postman (第二个编码字符串)中完全相同,然后只有我才能收到响应。如何以第二种格式对字符串进行编码?

最佳答案

您可能对字符串进行了双重编码。也许您不应该自己对查询字符串进行编码,而让 URLEncoder 为您完成这项工作。

这是一个示例,假设我在 HashMap this.params 中有键和值。

this.params.put(key, URLEncoder.encode(value.toString(), "UTF-8")); // set the key/value

StringBuilder param = new StringBuilder("");
for (Map.Entry<String, Object> item : this.params.entrySet()) {
if (param.toString().length() != 0) {
param.append('&');
}
param.append(item.getKey());
param.append('=');
param.append(item.getValue().toString());
}

现在 param.toString() 将被正确编码。与 url + "?"一起使用+ param.toString()

关于java - 如何在Java中将字符串转换为x-www-form-urlencoded?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51248087/

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