请原谅我对这种方法的任何无知,因为这对我来说有点新鲜。我一直在尽可能多地阅读它,但还未能解决这个问题。
我正在尝试通过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();
到目前为止,一切看起来都正常吗?
答案 0 :(得分:0)
POST请求返回新网页是正常的。我认为重定向将是异常情况。
你的应用程序非常模糊,所以我不确定你是怎么想把返回的html显示给用户的。
您可能需要查看可大大简化代码的WebClient类。
using (var client = new WebClient())
{
var resultBytes = client.UploadData(new Uri("http://example.com"), "POST", data);
}