2012-01-19 72 views
0

请原谅我对这个方法的任何无知,因为它对我来说有点新鲜。我一直在尽可能多地阅读它,但还没有能够解决这个问题。http反馈返回网页

我试图通过一个http post来完成与供应商的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(); 

是否一切看起来正常,并确定这么远?

+0

仅供参考,它位于C#.net网站上。对不起,我应该先澄清一下。 – Downtap

+0

请勿在“C#”前添加标题。这就是标签的用途。 –

+0

没问题。对于那个很抱歉。 – Downtap

回答

0

POST请求返回新网页是正常的。我认为重定向会是异常情况。

你对你的应用程序非常模糊,所以我不确定你想如何获得显示给用户的返回的html。

您可能想要查看WebClient类,它可以大大简化您的代码。

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

那么,理想情况下,我们希望在iframe中显示页面(不是我的第一选择,但是请求的内容)或新窗口,但不完全确定如何执行此操作。就简化代码而言,我最初使用的HttpTools.PostForm(link,postString,“NONJAVA”)似乎工作正常,只是不确定这是不是一个好方法。 – Downtap