私のASP.NETページをリダイレクトしようとしていますが、別のページにリダイレクトされます。そのページのURLは、HTTP投稿の応答から取得します。httpwebresponseからURLにリダイレクトします。ロケーションヘッダー
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
StringBuilder postData = new StringBuilder();
postData.Append("xmldata=" + HttpUtility.UrlEncode(xdoc));
postData.Append("&signature=" +HttpUtility.UrlEncode(signature));
httpWebRequest.Method = "POST";
httpWebRequest.Accept = "*/*";
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
using (Stream requestStream = httpWebRequest.GetRequestStream())
{
using (MemoryStream ms = new MemoryStream())
{
using (BinaryWriter bw = new BinaryWriter(ms))
{
bw.Write(Encoding.UTF8.GetBytes(postData.ToString()));
ms.WriteTo(requestStream);
}
}
}
httpWebRequest.AllowAutoRedirect = false;
var returnURL="";
using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
httpStatusCode = httpWebResponse.StatusCode;
if (httpStatusCode == HttpStatusCode.Found)
{
returnURL= httpWebResponse.Headers["Location"].ToString();
}
}
Response.Redirect(returnURL);
この応答リダイレクトは404エラーで終了します。 httpStatusCode
がHttpStatusCode.Found
に等しくない場合
var returnURL="";
using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
httpStatusCode = httpWebResponse.StatusCode;
if (httpStatusCode == HttpStatusCode.Found)
{
returnURL= httpWebResponse.Headers["Location"].ToString();
}
}
Response.Redirect(returnURL);
returnURL
変数が空である可能性があります
'if'文を取得したときに' httpStatusCode'の値は何ですか? –
Foundと説明に「Moved Temporarily」と表示されます – Raju