2016-05-31 25 views
0

私の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エラーで終了します。 httpStatusCodeHttpStatusCode.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変数が空である可能性があります

+0

'if'文を取得したときに' httpStatusCode'の値は何ですか? –

+0

Foundと説明に「Moved Temporarily」と表示されます – Raju

答えて

0

使用

System.Threading.Thread.Sleep(2000); 

コードの以下の行で

Response.Redirect(returnURL); 
+0

試しましたが同じエラーです:( – Raju

1

前に助けてください。他のステータスコードには、別の有効なURLを渡すこともできます。

関連する問題