我正在尝试利用Polly处理任意结果条件的能力https://github.com/App-vNext/Polly/#step-1b-optionally-specify-return-results-you-want-to-处理。
在我的测试用例中,我使用RestSharp发出 HTTP 请求。这是我的示例代码:
var policy = Policy
.HandleResult<IRestResponse>(r => r.Content.Contains("bla"))
.Retry(2)
.ExecuteAndCapture(() =>
{
IRestClient client = new RestClient("https://httpbin.org/anything");
IRestRequest request = new RestRequest(Method.GET);
var response = client.Execute(request);
return response;
});
对https://httpbin.org/anything的调用会回显一堆东西——确切的内容是不相关的。正如您在谓词中看到的那样,我正在结果正文中寻找字符串“bla”。
问题是policy.Outcome
总是成功的 ( policy.Outcome == OutcomeType.Successful
) 但“bla”不在结果正文中。