Skip to content

Bump Refit.HttpClientFactory from 16.1.0 to 16.4.0 - #340

Merged
github-actions[bot] merged 1 commit into
mainfrom
dependabot/nuget/sample/Refit.HttpClientFactory-16.4.0
Oct 19, 2026
Merged

github-actions[bot] merged 1 commit into
mainfrom
dependabot/nuget/sample/Refit.HttpClientFactory-16.4.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 19, 2026

Copy link
Copy Markdown
Contributor

Updated Refit.HttpClientFactory from 16.1.0 to 16.4.0.

Release notes

Sourced from Refit.HttpClientFactory's releases.

16.4.0

Summary

Refit 16.4.0 adds opt-in HTTP-aware retries, new query naming and relative URL options, and fixes for parameter binding and response handling. Existing clients keep their current behavior unless you enable the new options.

HTTP-aware retries

HttpRetryHandler works with Refit clients and ordinary HttpClient calls. It needs no extra resilience package or changes to your API interface.

  • By default, it allows three retries after the first send for GET, HEAD, OPTIONS and TRACE. It retries HTTP 408, 429, 500, 502, 503 and 504, plus HttpRequestException. A 403 retries only when the configured delay reader finds a valid timing hint.
  • The default reader respects standard Retry-After headers. RetryDelayProviders.Azure, .Aws, .GitHub and .Jira also read provider-specific timing headers. Custom readers can use ReadHeader with seconds, milliseconds, Unix timestamps or date formats.
  • When no valid hint is available, retries use exponential backoff starting at one second and capped at 30 seconds. Full jitter randomly spreads attempts within that interval. You can disable jitter or choose symmetric variation with RetryJitterMode.Symmetric.
  • Server hints are never shortened by jitter. A hint above MaxDelay returns the response rather than retrying too early. ServerDelayJitterRatio can add a small positive variation to a server delay.
  • Each attempt uses a fresh request with copied headers, options and content metadata. Request bodies are buffered once, with a one MiB default limit. Failed responses are disposed; the final response remains caller-owned. Cancellation covers buffering, sends and waits.

Quick start

Put the retry handler in the client's handler chain, then create your Refit client as usual:

using Refit;

var handler = new HttpRetryHandler(new HttpRetryOptions
{
    MaxRetries = 3,
    DelayProvider = RetryDelayProviders.GitHub,
})
{
    InnerHandler = new HttpClientHandler(),
};

using var client = new HttpClient(handler)
{
    BaseAddress = new Uri("https://api.github.com"),
};
var api = RestService.ForGenerated<IGitHubApi>(client);

IGitHubApi is your existing Refit interface. Omit DelayProvider to use standard Retry-After handling. With Refit.HttpClientFactory, register a fresh handler for the client:

services.AddRefitGeneratedClient<IGitHubApi>()
    .ConfigureHttpClient(static client =>
        client.BaseAddress = new Uri("https://api.github.com"))
    .AddHttpMessageHandler(static () => new HttpRetryHandler(new HttpRetryOptions
    {
        DelayProvider = RetryDelayProviders.GitHub,
    }));

Set MaxRetries = 0 to disable retries. Use ShouldRetry to replace the response rules, and BaseDelay / MaxDelay to tune waits. POST, PUT, PATCH and DELETE require RetryUnsafeMethods = true; enable this only when replay is safe for the endpoint, such as when it supports an idempotency key. Avoid unbounded streaming uploads and stacking this handler with another retry strategy.
... (truncated)

16.3.0

🗞️ What's Changed

✨ Features

  • reactiveui/refit@​053873c309b518d21aa128c246ff8c8b2e38bed4 feat(analyzers): explain why a method cannot generate and flag unbound route placeholders (#​2340) @​glennawatson

🔗 Full Changelog: reactiveui/refit@v16.2.0...v16.3.0

🙌 Contributions

💖 Thanks to all the contributors: @​glennawatson

16.2.0

🗞️ What's Changed

✨ Features

  • reactiveui/refit@​d864935e7f389e76cae04aecc8c8991712f8d050 feat(testing): add controllable streams, request capture and a test clock to Refit.Testing (#​2337) @​glennawatson
  • reactiveui/refit@​04187430b0a947b4d5d3280f3fd5ac6cfebe67c1 feat(bodies): typed JSON Lines uploads from IEnumerable and IAsyncEnumerable (#​2338) @​glennawatson

🧹 General Changes

  • reactiveui/refit@​2ecbf2a5613af71d6bcc51a7440a740f814685f1 chore: update packages, credit Refit's origins, remove stale files (#​2336) @​glennawatson
  • reactiveui/refit@​7aa89fa16df2a8c69811a07d5fca14d4121b999a chore: remove the Jekyll site files now that GitHub Pages redirects to reactiveui.net @​glennawatson

✅ Tests

  • reactiveui/refit@​a463e8a209976e19998d7c2125cd7829f6ebbc7c test(bodies): cover the remaining typed JSON Lines branches (#​2339) @​glennawatson

📝 Documentation

  • reactiveui/refit@​5d17ac99ebea81fe4c587c139297bf399c19145b docs(readme): name the programme behind each sponsor @​glennawatson
  • reactiveui/refit@​ceb75e82fb44241ca5f276b0d05dca44647c09bb docs(readme): link to the ReactiveUI sponsors page @​glennawatson
  • reactiveui/refit@​a330a6369aae657039cc075232608f4d20651da7 docs(readme): keep the README renderable on nuget.org @​glennawatson
  • reactiveui/refit@​176ebdbf5440f75e66961290769d8d006c99f4c1 docs: new Refit logo and official sponsor logos @​glennawatson
  • reactiveui/refit@​7333739298ab4994996f95d99724fff93b0616f5 docs(readme): credit OpenAI's Codex for Open Source support @​glennawatson

📦 Dependencies

  • reactiveui/refit@​b7ca0298c2b4c418e7b3b86fe659a5c3e31bc305 chore(deps): update dependency reactiveui.primitives to 8.1.0 (#​2334) renovate[bot]

🔗 Full Changelog: reactiveui/refit@v16.1.0...v16.2.0

🙌 Contributions

💖 Thanks to all the contributors: @​glennawatson

🤖 Automated services that contributed: renovate[bot]

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: Refit.HttpClientFactory
  dependency-version: 16.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .net code dependencies Pull requests that update a dependency file labels Oct 19, 2026
@github-actions
github-actions Bot enabled auto-merge (squash) October 19, 2026 09:40
@github-actions
github-actions Bot merged commit 0b779b7 into main Oct 19, 2026
4 checks passed
@dependabot
dependabot Bot deleted the dependabot/nuget/sample/Refit.HttpClientFactory-16.4.0 branch October 19, 2026 09:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .net code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants