该应用使用client.PostAsync()发送帖子。我希望它不要遵循302重定向。
如何?
我想我可以像this answer中所述设置AllowAutoRedirect
。
但是如何在PostAsync()调用中使用HttpWebRequest
?
答案 0 :(得分:35)
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");
答案 1 :(得分:4)
要添加到汉斯的答案中:
WebRequestHandler派生自HttpClientHandler,但添加了属性 通常仅在完整的.NET上可用。 WebRequestHandler 不包含在System.Net.Http DLL中,而是包含在 System.Net.Http.WebRequest DLL,因此您必须明确包含 以供参考。否则它将不会显示。
如果您不想添加新的DLL,则可以只使用HttpClientHandler:
HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.AllowAutoRedirect = false;