Che*_*eso 23 c# dotnet-httpclient
该应用程序使用client.PostAsync()发送帖子.我希望它不要遵循302重定向.
怎么样?
我想我可以AllowAutoRedirect按照这个答案中的描述进行设置.
但是如何HttpWebRequest在PostAsync()调用中使用?
Han*_*ans 36
HttpClient构造函数的一个重载需要一个
WebRequestHandler参数.本HttpClient类使用这个
WebRequestHandler发送的请求.
本WebRequestHandler类提供了一个名为属性AllowAutoRedirect
来配置重定向行为.将此属性设置为false会指示HttpClient不遵循重定向响应.
这是一个小代码示例:
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");
Run Code Online (Sandbox Code Playgroud)
要添加到汉斯的答案中:
WebRequestHandler派生自HttpClientHandler,但添加了通常仅在完整.NET上可用的属性。WebRequestHandler未包含在System.Net.Http DLL中,而是包含在System.Net.Http.WebRequest DLL中,因此您必须明确地将其包含为引用才能看到它。否则它将不会显示。
如果您不想添加新的DLL,则可以只使用HttpClientHandler。
HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.AllowAutoRedirect = false;
Run Code Online (Sandbox Code Playgroud)
参考:https : //blogs.msdn.microsoft.com/henrikn/2012/08/07/httpclient-httpclienthandler-and-webrequesthandler-explained/