20
使用HttpClient from NuGet。如何讓System.Net.Http.HttpClient不遵循302重定向?
該應用程序發送一個帖子與client.PostAsync()。我希望它不遵循302重定向。
怎麼樣?
我想我可以設置AllowAutoRedirect
,如this answer中所述。
但是,如何獲得PostAsync()調用中使用的HttpWebRequest
?
使用HttpClient from NuGet。如何讓System.Net.Http.HttpClient不遵循302重定向?
該應用程序發送一個帖子與client.PostAsync()。我希望它不遵循302重定向。
怎麼樣?
我想我可以設置AllowAutoRedirect
,如this answer中所述。
但是,如何獲得PostAsync()調用中使用的HttpWebRequest
?
構造函數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");
好,謝謝。這意味着我無法指定每個通話302個跟隨行爲,對嗎?它是每處理程序,這意味着,我猜,每個HttpClient的實例。是? – Cheeso
是的,它是HttpClient的每個實例。如果您嘗試修改兩次調用之間的AllowAutoRedirect屬性,您將得到一個異常。 – Hans