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
相关产品推荐
相关产品推荐

