如何在httpclient响应中重试坏状态代码上的任务?

时间:2018-04-18 09:49:15

标签: c#

我目前的想法是获取状态代码的数字表示,并根据这些代码决定做什么。但是我遇到了各种各样的障碍。

当我在Chrome中检查浏览器请求时,每个响应都有这个部分:

Request URL: SiteURL
Request Method: GET
Status Code: 200 OK //note this part
Remote Address: 127.0.0.1:8888
Referrer Policy: no-referrer-when-downgrade

当我做这样的事情时:

var response = Task.Run(() => this.HttpClient.GetAsync($"some_link"));
string pageHtml = response.Result.Content.ReadAsStringAsync().Result;
string statusCode = response.Result.StatusCode.ToString();

当一切正常时,我只能获得状态代码“OK”,而不是“200 OK”。

有没有办法获取状态代码的数字表示?我不知道如何使用文本版本,因为我不知道大多数人会说什么,而且我还不确定是否有正常的状态代码可行。 是否可以获得与“OK”不同的状态代码并仍然获得所请求的页面?如果答案为“否”,我想这将解决我的问题而不是那里。

最终的想法是当我得到像504,502这样的错误状态代码(或者可能是一个不同于良好状态代码的东西)时,程序每5分钟重试一次响应,直到情况得到修复并在此之后继续工作。 / p>

0 个答案:

没有答案