相关疑难解决方法(0)

在HTTP响应标头之后重试 - 它会影响任何事情吗?

如果由于临时过载而我想礼貌地拒绝网站上的服务,则HTTP响应503服务不可用似乎是合适的.该规范提到使用503 发送Retry-after标头.

有什么意义吗?Retry-after会影响任何事情吗?浏览器是否关注它?

http http-headers

58
推荐指数
3
解决办法
3万
查看次数

如何在请求python库中限制HTTP请求的下载速率?

是否可以使用requestsPython库限制GET请求的下载速率?例如,使用如下命令:

r = requests.get('https://stackoverflow.com/')
Run Code Online (Sandbox Code Playgroud)

...是否可以限制下载速率?我希望有类似这个wget命令的东西:

wget --limit-rate=20k https://stackoverflow.com/
Run Code Online (Sandbox Code Playgroud)

我知道这是可能urllib2.我是专门询问requests图书馆的.

python http wget httprequest python-requests

15
推荐指数
1
解决办法
8352
查看次数

Polly 重试不会关闭现有的 HttpClient 调用

我使用 Polly 来处理一些场景,例如请求限制和超时。这些策略直接添加到 Startup.cs 中,如下所示:

var retries = //applying the retries, let say I set to 25 times with 10s delay. Total 250s.

serviceCollection
    .AddHttpClient<IApplicationApi, ApplicationApi>()
    .AddPolicyHandler((services, request) => GetRetryPolicy<ApplicationApi>(retries, services));
Run Code Online (Sandbox Code Playgroud)

政策:

static IAsyncPolicy<HttpResponseMessage> GetRetryPolicy<T>(List<TimeSpan> retries, IServiceProvider services)
{
    return HttpPolicyExtensions
        .HandleTransientHttpError()
        .OrResult(msg => msg.StatusCode == System.Net.HttpStatusCode.TooManyRequests)
        .WaitAndRetryAsync(retries,
            onRetry: (outcome, timespan, retryAttempt, context) =>
            {
                //do some logging
            }
}
Run Code Online (Sandbox Code Playgroud)

在 ApplicationApi.cs 中执行如下操作:

private readonly HttpClient _httpClient;
public ApplicationApi(HttpClient httpClient)
{
    _httpClient = httpClient;
}
       
public void CallApi()
{ 
      var …
Run Code Online (Sandbox Code Playgroud)

.net c# dotnet-httpclient .net-core polly

3
推荐指数
1
解决办法
2043
查看次数