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

如何在Java HttpRequest中设置路径参数与查询参数?

Java HttpClient 传递字符串路径参数方案

要将字符串作为路径参数传入请求 endpoint,需要先做 URI 编码再拼接,避免特殊字符破坏 URI 结构,具体实现步骤如下:

实现步骤

  1. 对路径参数做UTF-8编码
    路径参数如果包含中文、空格、/、&等特殊字符,直接拼接会导致请求异常,需要先编码处理:
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

// 待传入的路径参数
String myString = "你的路径参数值";
// 编码处理
String encodedPathParam = URLEncoder.encode(myString, StandardCharsets.UTF_8);
  1. 拼接生成最终请求地址
    根据你的 endpoint 格式拼接编码后的参数:
// 如果原endpoint结尾带斜杠,比如 https://example.com/api/user/
String finalEndpoint = endpoint + encodedPathParam;

// 如果原endpoint结尾不带斜杠,中间需要补充斜杠
// String finalEndpoint = endpoint + "/" + encodedPathParam;
  1. 替换原有请求的URI构造逻辑
    修改HttpRequest构造时的uri参数即可:
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(finalEndpoint))
    .GET()
    .header("Content-Type","application/json")
    .build();

注意事项

  • 你提供的原有代码存在两处拼写错误,需要修正才能正常编译:
    • new HttpRquest.newBuilder() 拼写错误,改为 new HttpRequest.newBuilder()
    • Httpresponse.BodyHandlers.ofString() 拼写错误,改为 HttpResponse.BodyHandlers.ofString()
  • 如果项目依赖Spring,可以使用UriComponentsBuilder更方便地构造URI,自动处理编码和路径拼接:
    String finalEndpoint = UriComponentsBuilder.fromHttpUrl(endpoint)
        .pathSegment(myString)
        .encode(StandardCharsets.UTF_8)
        .toUriString();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:09:04