2012-01-19 1 views
0

私にとっては若干新しくなっているので、この方法論には何の知らせもありません。私はできる限り多くのことを読んできましたが、まだこれを解決することはできませんでした。httpレスポンスウェブページを返します

http投稿でベンダーとSSOを達成しようとしています。十分に簡単です。私は過去にこれをやったことがありますが、通常、ユーザーにリダイレクトできるURLが返されます。残念なことに、このベンダーでは、HTML、およびすべてのページ全体を返しています。これは典型的ですか?もしそうなら、これを新しいウィンドウに投稿する私の唯一の解決策ですか?

参考のために、ここに私のコードは、これまでのところです:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(link); 
request.Method = "POST"; 
request.ContentType = "application/x-www-form-urlencoded"; 
byte[] postBytes = Encoding.UTF8.GetBytes(postString); 
request.ContentLength = postBytes.Length; 
Stream requestStream = request.GetRequestStream(); 
requestStream.Write(postBytes, 0, postBytes.Length); 
requestStream.Close(); 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
var responseStream = response.GetResponseStream(); 
var responseReader = new StreamReader(responseStream); 
var responseString = responseReader.ReadToEnd(); 
responseReader.Close(); 
responseStream.Close(); 
response.Close(); 

すべてがOK、これまで正常に見えるとしていますか?

+0

参考までに、これはC#.netウェブサイトに掲載されています。申し訳ありませんが、私はこれを最初に明確にすべきでした。 – Downtap

+0

タイトルに "C#"というプレフィックスを付けないでください。それがタグのためのものです。 –

+0

問題ありません。申し訳ありません。 – Downtap

答えて

0

POST要求が新しいWebページを返すのは正常です。私はリダイレクトが異常なケースだと思うでしょう。

あなたはあなたのアプリについてかなり漠然としているので、どのように返されたhtmlをユーザに見せたいのか分かりません。

コードを大幅に簡略化できるWebClientクラスをチェックアウトしたい場合があります。

 using (var client = new WebClient()) 
    { 
     var resultBytes = client.UploadData(new Uri("http://example.com"), "POST", data); 
    } 
+0

さて、理想的には、ページをiframe(最初の選択ではなく、何が要求されているか)または新しいウィンドウに表示したいのですが、それを行う方法が完全にはわかりません。限り単純化されたコードでは、私は最初のHttpTools.PostForm(リンク、postString、 "NONJAVA")は正常に動作するように見えたが、確かにそれもokメソッドかどうかを使用した。 – Downtap

関連する問題