You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中HTTP请求URL编码问题:%40替代@致请求失败如何解决?

Java中HTTP PATCH请求路径编码问题的解决方案

问题分析

你当前的请求路径中手动将@编码为%40,但服务器接收到的是编码后的%40而非原始的@,导致请求失败。这是因为HTTP路径中的@属于合法的未保留字符,无需手动编码,手动编码后服务器无法识别为邮箱格式的一部分。

解决方案

方案1:直接使用原始@符号构造路径

将路径中的%40替换为原始的@,让HTTP客户端自动处理必要的编码逻辑(多数客户端会根据服务器要求自动适配):

request.header("Content-Type", "application/x-www-form-urlencoded");
request.body(requestParams.toString());
Response response = request.patch("/home/taha@gmail.com");

方案2:手动解码已编码的路径(如果无法直接修改路径字符串)

如果路径字符串是从外部获取的已编码值,可以使用Java的URLDecoder类解码后再发送请求:

import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

// ...

String encodedPath = "/home/taha%40gmail.com";
String decodedPath = URLDecoder.decode(encodedPath, StandardCharsets.UTF_8);

request.header("Content-Type", "application/x-www-form-urlencoded");
request.body(requestParams.toString());
Response response = request.patch(decodedPath);

注意事项

  • application/x-www-form-urlencoded是针对请求体的编码格式,和路径的编码逻辑无关,无需修改这部分配置。
  • 路径中的@属于RFC规范允许的未保留字符,直接使用不会触发路径解析错误,服务器应能正确识别。

内容的提问来源于stack exchange,提问作者Taha Iqbal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 10:55:17