Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
559 views
in Technique[技术] by (71.8m points)

c# - How can I get System.Net.Http.HttpClient to not follow 302 redirects?

Using HttpClient from NuGet.

The app sends a post with client.PostAsync(). I'd like it to NOT follow 302 redirects.

how?

I figure I can just set AllowAutoRedirect as described in this answer.

But how do I get the HttpWebRequest used within a PostAsync() call?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

One of the overloads of the HttpClient constructor takes a WebRequestHandler argument. The HttpClient class uses this WebRequestHandler for sending requests.

The WebRequestHandler class provides a property called AllowAutoRedirect to configure the redirect behaviour. Setting this property to false instructs the HttpClient to not follow redirect responses.

Here is a small code sample:

WebRequestHandler webRequestHandler = new WebRequestHandler();

webRequestHandler.AllowAutoRedirect = false;

HttpClient httpClient = new HttpClient(webRequestHandler);

// Send a request using GetAsync or PostAsync

Task<HttpResponseMessage> response = httpClient.GetAsync("http://www.google.com");

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...