如何在c#httpwebreqest ASP.NET中处理状态302重定向
这是我的密码:如何在c#httpwebreqest ASP.NET中处理状态302重定向,c#,asp.net,redirect,httpwebrequest,C#,Asp.net,Redirect,Httpwebrequest,这是我的密码: @{ //string postString = "parameter=value"; const string contentType = "application/x-www-form-urlencoded"; System.Net.ServicePointManager.Expect100Continue = false; CookieContainer cookies = new CookieCont
@{
//string postString = "parameter=value";
const string contentType = "application/x-www-form-urlencoded";
System.Net.ServicePointManager.Expect100Continue = false;
CookieContainer cookies = new CookieContainer();
HttpWebRequest webRequest = WebRequest.Create("http://somehost:8080/myApp") as HttpWebRequest;
webRequest.Method = "POST";
webRequest.AllowAutoRedirect = false;
webRequest.ContentType = contentType;
webRequest.CookieContainer = cookies;
webRequest.ContentLength = postString.Length;
webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1";
webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream());
requestWriter.Write(postString);
requestWriter.Close();
HttpWebResponse resp = webRequest.GetResponse() as HttpWebResponse;
string location = resp.Headers["Location"];
Response.Redirect(location);
}
来自http://somehost:8080/myApp
is 302重定向到其他域。如果我使用webRequest.AllowAutoRedirect=true
和write response(response.write(StreamReader(resp.GetResponseStream()).ReadToEnd())
),生成的html无法正确显示,因为无法解析具有相对链接的资源
所以,我提出了这个解决方案,但我觉得它不正确。在我看来,我的解决方案有点“胡闹”
有更好的解决方案吗?将相对url更改为绝对url
url = objHttpWebResponse.Headers["Location"].ToString();
MessageBox.Show("Redirect To " + objHttpWebResponse.Headers["Location"]);
System.Threading.Thread.Sleep(2000);
Uri final = new Uri(new Uri(txtURL.Text), url);
string finalurl = final.AbsoluteUri;
download(finalurl);