您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在C#中,处理HTTP请求重定向通常是使用HttpClient
类
using System;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
namespace HttpRedirectExample
{
class Program
{
static async Task Main(string[] args)
{
var url = "https://example.com/some-redirect-url";
using (var httpClientHandler = new HttpClientHandler())
{
httpClientHandler.AllowAutoRedirect = false; // 禁用自动重定向
using (var httpClient = new HttpClient(httpClientHandler))
{
try
{
var response = await httpClient.GetAsync(url);
if (response.StatusCode == HttpStatusCode.Redirect || response.StatusCode == HttpStatusCode.MovedPermanently)
{
var redirectUrl = response.Headers.Location.ToString();
Console.WriteLine($"Redirect detected, new URL: {redirectUrl}");
// 手动处理重定向
var redirectResponse = await httpClient.GetAsync(redirectUrl);
if (redirectResponse.IsSuccessStatusCode)
{
var content = await redirectResponse.Content.ReadAsStringAsync();
Console.WriteLine($"Content from redirected URL: {content}");
}
else
{
Console.WriteLine($"Error: {redirectResponse.StatusCode}");
}
}
else if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Content: {content}");
}
else
{
Console.WriteLine($"Error: {response.StatusCode}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
}
}
}
在这个示例中,我们首先创建一个HttpClientHandler
实例,将其AllowAutoRedirect
属性设置为false
以禁用自动重定向。然后,我们使用HttpClient
发送GET请求到指定的URL。如果响应状态码表示重定向(例如,HttpStatusCode.Redirect
或HttpStatusCode.MovedPermanently
),我们从响应头中获取新的URL,并手动发送另一个GET请求。最后,我们处理重定向后的响应并输出结果。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。