该应用程序使用 client.PostAsync() 发送帖子。我希望它不遵循 302 重定向。
如何?
我想我可以按照这个答案AllowAutoRedirect
中的描述进行设置。
但是如何HttpWebRequest
在 PostAsync() 调用中使用?
该应用程序使用 client.PostAsync() 发送帖子。我希望它不遵循 302 重定向。
如何?
我想我可以按照这个答案AllowAutoRedirect
中的描述进行设置。
但是如何HttpWebRequest
在 PostAsync() 调用中使用?
构造函数的重载之一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");
添加到汉斯的答案:
WebRequestHandler 派生自 HttpClientHandler,但添加了通常仅在完整 .NET 上可用的属性。WebRequestHandler 不包含在 System.Net.Http DLL 中,而是包含在 System.Net.Http.WebRequest DLL 中,因此您必须明确包含它作为参考才能看到它。否则不会出现。
如果您不想添加新的 DLL,您可以选择 HttpClientHandler:
HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.AllowAutoRedirect = false;