Ich wollte eine Post-Anfrage auf dieser Website machen: http://www.prezup.info/index.php?page=films, um eine Recherche zu machen. Aber wenn ich die Post-Anfrage mache, ist das Ergebnis nicht das, was ich erwartet habe (Ergebnisse der Recherche), sondern die Hauptseite.Warum funktioniert diese POST-Anfrage nicht?
Kann mir jemand sagen, was mit meiner Anfrage nicht stimmt? Hier
ist der Code: Datum ist die Post-Anforderung arg und URL Der URL
public string POST()
{
string data = "motcle=terminator&ok.x=17&ok.y=16";
string Reponse = String.Empty;
string contenttype = "application/x-www-form-urlencoded";
string useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729; .NET4.0E)";
string host = "www.prezup.info";
string url = "http://www.prezup.info/index.php?page=films";
string method = "POST";
StreamWriter Sw = null; // Pour écrire les données
StreamReader Sr = null; // Pour lire les données
try
{
HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(url);
Req.Method = method; // POST ou GET
Req.Host = host;
Req.KeepAlive = true;
Req.UserAgent = useragent;
Req.CookieContainer = cookieJar;
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byte1 = encoding.GetBytes(data);
Req.ContentType = contenttype;
Req.ContentLength = byte1.Length; // La longueur des données
Stream newStream = Req.GetRequestStream();
newStream.Write(byte1, 0, byte1.Length);
newStream.Close();
Sr = new StreamReader(((HttpWebResponse)Req.GetResponse()).GetResponseStream());
Reponse = Sr.ReadToEnd(); // On choppe la réponse
int cookieCount = cookieJar.Count;
Sr.Close(); // Et on ferme
Sw = null;
}
catch (Exception e) // En cas d'exception
{
if (Sw != null) // Si le flux est ouvert, on le ferme
Sw.Close();
if (Sr != null)
Sr.Close();
Reponse = e.Message;
}
return Reponse;
}
Nicht die Antwort auf Ihre Frage. 1. Wusstest du, dass du dieses StreamWriter-Objekt nicht einmal benutzt? 2. Entsorgen Sie wegwerfbare Objekte und [machen Sie es elegant] (http://msdn.microsoft.com/en-us/library/yh598w02.aspx), indem Sie die Anweisung 'using' verwenden. –
Es sollte funktionieren. Welche Art von Fehler erhalten Sie? –
Wenn die Antwort nicht das ist, was Sie erwarten, dann müssen Sie recherchieren, ob die Website etwas anderes an die Browser sendet und Ihnen eine andere Antwort gibt. benutze wireshark, um zu sehen, welche Antwort normalerweise kommt. Sie werden nur bekommen, was die Website sendet, nicht, was Sie denken, Sie sollten – ata