Sam*_*m B 3 .net c# asynchronous header httpclient
我正在尝试使用HttpClient获取页面的URL。我以前只使用HttpWebRequest,但是我需要使它成为异步方法。在下面的代码中,myUri始终返回null,当我稍后尝试处理它时,将引发异常。
位置标头使用的是错误的东西吗?
string myUrl = "http://www.example.com/";
Uri myUri= new Uri(myUrl);
using (HttpClient client = new HttpClient())
using (HttpResponseMessage response = await client.GetAsync(myUri))
{
if (response.IsSuccessStatusCode)
{
myUri= response.Headers.Location;
Debug.WriteLine("True "+ myUri);
}
else {
Debug.WriteLine("False " + myUri);
}
}
Run Code Online (Sandbox Code Playgroud)
这是因为HttpClient它将自动跟随重定向。如果您需要页面重定向到的URL,则需要阻止它自动跟随:
将您的代码更改为以下内容:
string myUrl = "http://www.example.com/";
Uri myUri= new Uri(myUrl);
HttpClientHandler httpClientHandler = new HttpClientHandler();
httpClientHandler.AllowAutoRedirect = false;
using (HttpClient client = new HttpClient(httpClientHandler))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6546 次 |
| 最近记录: |