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

RestSharp重复调用AddUrlSegment无法更新URL段值的问题求助

在RestSharp中更新URL段值的解决方法

RestSharp的AddUrlSegment方法对同名URL段只会保留首次添加的值,后续调用不会覆盖原有值,这就是你遇到url2未更新的原因。以下两种方法可以解决这个问题:

方法一:移除旧段后添加新值

先从请求参数集合中移除旧的URL段,再添加新值:

RestClient client = new RestClient();
var request = new RestRequest("https://api.example.com/orgs/{segment}/something");
request.AddUrlSegment("segment", 1);
var url1 = client.BuildUri(request);

// 移除指定名称的URL段参数
request.Parameters.RemoveAll(p => p.Type == ParameterType.UrlSegment && p.Name == "segment");
// 添加更新后的URL段值
request.AddUrlSegment("segment", 2);
var url2 = client.BuildUri(request);

方法二:直接修改已有参数的值

直接找到对应的URL段参数并修改其Value属性:

RestClient client = new RestClient();
var request = new RestRequest("https://api.example.com/orgs/{segment}/something");
request.AddUrlSegment("segment", 1);
var url1 = client.BuildUri(request);

// 定位到目标URL段参数
var segmentParam = request.Parameters.FirstOrDefault(p => p.Type == ParameterType.UrlSegment && p.Name == "segment");
if (segmentParam != null) {
    segmentParam.Value = 2;
}
var url2 = client.BuildUri(request);

以上两种方法都能让url2正确生成为https://api.example.com/orgs/2/something。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 04:42:03