C# Polly for handling error http responses
I am trying to implement within a constructor the Polly for handling HTTP error statuses, but I get an error saying: The non-generic method cannot be used with type arguments. I used the code from their website though. Here it is:
public BaseApiManager()
{
Retry = Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
}
The error is on the second line, at the "OrResult". I also tried using it with ApiResponse, which is my generic class, but it does not work as well.
What am I doing wrong ? thank you.
c# http polly
add a comment |
I am trying to implement within a constructor the Polly for handling HTTP error statuses, but I get an error saying: The non-generic method cannot be used with type arguments. I used the code from their website though. Here it is:
public BaseApiManager()
{
Retry = Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
}
The error is on the second line, at the "OrResult". I also tried using it with ApiResponse, which is my generic class, but it does not work as well.
What am I doing wrong ? thank you.
c# http polly
If I use bool, it does not let me use r.StatusCode
– MariaAndrews
Nov 14 '18 at 13:26
Looking on documentation: github.com/App-vNext/Polly your code seems ok. But maybe you have method named HttpResponseMessage?
– Grzesiek Danowski
Nov 14 '18 at 13:39
No, I use the default one. But it acts like it wants a bool instead.
– MariaAndrews
Nov 14 '18 at 13:48
I also have above the declaration : private RetryPolicy Retry { get; }
– MariaAndrews
Nov 14 '18 at 13:49
There was an error in the documentation on the Polly website. It has now been corrected.
– mountain traveller
Nov 14 '18 at 17:53
add a comment |
I am trying to implement within a constructor the Polly for handling HTTP error statuses, but I get an error saying: The non-generic method cannot be used with type arguments. I used the code from their website though. Here it is:
public BaseApiManager()
{
Retry = Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
}
The error is on the second line, at the "OrResult". I also tried using it with ApiResponse, which is my generic class, but it does not work as well.
What am I doing wrong ? thank you.
c# http polly
I am trying to implement within a constructor the Polly for handling HTTP error statuses, but I get an error saying: The non-generic method cannot be used with type arguments. I used the code from their website though. Here it is:
public BaseApiManager()
{
Retry = Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
}
The error is on the second line, at the "OrResult". I also tried using it with ApiResponse, which is my generic class, but it does not work as well.
What am I doing wrong ? thank you.
c# http polly
c# http polly
asked Nov 14 '18 at 12:18
MariaAndrewsMariaAndrews
6
6
If I use bool, it does not let me use r.StatusCode
– MariaAndrews
Nov 14 '18 at 13:26
Looking on documentation: github.com/App-vNext/Polly your code seems ok. But maybe you have method named HttpResponseMessage?
– Grzesiek Danowski
Nov 14 '18 at 13:39
No, I use the default one. But it acts like it wants a bool instead.
– MariaAndrews
Nov 14 '18 at 13:48
I also have above the declaration : private RetryPolicy Retry { get; }
– MariaAndrews
Nov 14 '18 at 13:49
There was an error in the documentation on the Polly website. It has now been corrected.
– mountain traveller
Nov 14 '18 at 17:53
add a comment |
If I use bool, it does not let me use r.StatusCode
– MariaAndrews
Nov 14 '18 at 13:26
Looking on documentation: github.com/App-vNext/Polly your code seems ok. But maybe you have method named HttpResponseMessage?
– Grzesiek Danowski
Nov 14 '18 at 13:39
No, I use the default one. But it acts like it wants a bool instead.
– MariaAndrews
Nov 14 '18 at 13:48
I also have above the declaration : private RetryPolicy Retry { get; }
– MariaAndrews
Nov 14 '18 at 13:49
There was an error in the documentation on the Polly website. It has now been corrected.
– mountain traveller
Nov 14 '18 at 17:53
If I use bool, it does not let me use r.StatusCode
– MariaAndrews
Nov 14 '18 at 13:26
If I use bool, it does not let me use r.StatusCode
– MariaAndrews
Nov 14 '18 at 13:26
Looking on documentation: github.com/App-vNext/Polly your code seems ok. But maybe you have method named HttpResponseMessage?
– Grzesiek Danowski
Nov 14 '18 at 13:39
Looking on documentation: github.com/App-vNext/Polly your code seems ok. But maybe you have method named HttpResponseMessage?
– Grzesiek Danowski
Nov 14 '18 at 13:39
No, I use the default one. But it acts like it wants a bool instead.
– MariaAndrews
Nov 14 '18 at 13:48
No, I use the default one. But it acts like it wants a bool instead.
– MariaAndrews
Nov 14 '18 at 13:48
I also have above the declaration : private RetryPolicy Retry { get; }
– MariaAndrews
Nov 14 '18 at 13:49
I also have above the declaration : private RetryPolicy Retry { get; }
– MariaAndrews
Nov 14 '18 at 13:49
There was an error in the documentation on the Polly website. It has now been corrected.
– mountain traveller
Nov 14 '18 at 17:53
There was an error in the documentation on the Polly website. It has now been corrected.
– mountain traveller
Nov 14 '18 at 17:53
add a comment |
2 Answers
2
active
oldest
votes
Correct your Retry definition specifing type:
private RetryPolicy<HttpResponseMessage> Retry { get; }
add a comment |
It should work as follows:
Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
The .OrResult(...) does not need generic type arguments, because the .Handle<HttpResponseMessage>(...) clause has already bound the policy to handle results of type HttpResponseMessage.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53300086%2fc-sharp-polly-for-handling-error-http-responses%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Correct your Retry definition specifing type:
private RetryPolicy<HttpResponseMessage> Retry { get; }
add a comment |
Correct your Retry definition specifing type:
private RetryPolicy<HttpResponseMessage> Retry { get; }
add a comment |
Correct your Retry definition specifing type:
private RetryPolicy<HttpResponseMessage> Retry { get; }
Correct your Retry definition specifing type:
private RetryPolicy<HttpResponseMessage> Retry { get; }
answered Nov 14 '18 at 14:16
Grzesiek DanowskiGrzesiek Danowski
1926
1926
add a comment |
add a comment |
It should work as follows:
Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
The .OrResult(...) does not need generic type arguments, because the .Handle<HttpResponseMessage>(...) clause has already bound the policy to handle results of type HttpResponseMessage.
add a comment |
It should work as follows:
Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
The .OrResult(...) does not need generic type arguments, because the .Handle<HttpResponseMessage>(...) clause has already bound the policy to handle results of type HttpResponseMessage.
add a comment |
It should work as follows:
Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
The .OrResult(...) does not need generic type arguments, because the .Handle<HttpResponseMessage>(...) clause has already bound the policy to handle results of type HttpResponseMessage.
It should work as follows:
Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
The .OrResult(...) does not need generic type arguments, because the .Handle<HttpResponseMessage>(...) clause has already bound the policy to handle results of type HttpResponseMessage.
answered Nov 14 '18 at 17:43
mountain travellermountain traveller
2,596819
2,596819
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53300086%2fc-sharp-polly-for-handling-error-http-responses%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
If I use bool, it does not let me use r.StatusCode
– MariaAndrews
Nov 14 '18 at 13:26
Looking on documentation: github.com/App-vNext/Polly your code seems ok. But maybe you have method named HttpResponseMessage?
– Grzesiek Danowski
Nov 14 '18 at 13:39
No, I use the default one. But it acts like it wants a bool instead.
– MariaAndrews
Nov 14 '18 at 13:48
I also have above the declaration : private RetryPolicy Retry { get; }
– MariaAndrews
Nov 14 '18 at 13:49
There was an error in the documentation on the Polly website. It has now been corrected.
– mountain traveller
Nov 14 '18 at 17:53