POST过程并查看结果数据

时间:2015-03-29 23:28:44

标签: c# redirect

我使用C#将POST数据发送到某个页面!它真的有用...... 我想问我如何使用结果数据(GET)...... 我想知道结果是否已重定向到另一页....

string Uname = username.Text;
string Pass = (item.Text);
ASCIIEncoding encoding = new ASCIIEncoding();
string pastData = POST1.Text + "=" + Uname + "&" + POST2.Text + "=" + Pass + "&" + Subtxt.Text;
// MessageBox.Show(pastData);
byte[] data = encoding.GetBytes(pastData);
WebRequest requst = WebRequest.Create(url.Text);
requst.Method = "POST";
requst.ContentType = "application/x-www-form-urlencoded";
requst.ContentLength = data.Length;

Stream stream = requst.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();
WebResponse response = requst.GetResponse();
stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream);
MessageBox.Show(sr.ReadToEnd());

此代码可用于发送POST而不会出现问题

我想知道sr值是否已重定向到另一个页面...

我有一些想法..我在sr搜索重定向字。 有些网站没有找到重定向字数据(GET)..但它重定向......

**结论:**

如果我有管理页面网站...我发送带有真实数据的POST ..我想知道它是否结果重定向到页面管理员

1 个答案:

答案 0 :(得分:2)

我认为您希望在请求中将AllowAutoRedirect设置为false(您需要将其强制转换为HttpWebRequest)。然后,您可以检查响应代码并查看它是否是重定向。重定向的目标页面应位于Location标题中。

private static void NoRedirect(string uri)
{
    var request = (HttpWebRequest)WebRequest.Create(uri);
    request.AllowAutoRedirect = false;
    var resp = (HttpWebResponse)request.GetResponse();
    Console.WriteLine(resp.StatusCode);
    Console.WriteLine("Location: {0}", resp.Headers["Location"]);
    using (var reader = new StreamReader(resp.GetResponseStream()))
    {
        Console.WriteLine(reader.ReadToEnd());
    }
}