2012-03-24 13 views
-1

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; 
    } 
+0

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. –

+0

Es sollte funktionieren. Welche Art von Fehler erhalten Sie? –

+0

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

Antwort

0

Diese Form macht eine POST-Anforderung an http://www.prezup.info/index.php?page=films&action=list, so dass Ihre URL ist falsch. Wechsel:

string url = "http://www.prezup.info/index.php?page=films"; 

Um

string url = "http://www.prezup.info/index.php?page=films&action=list"; 

Und es wird funktionieren.

+0

Das ist was falsch war. Vielen Dank! –

+0

@ JérémieDjidjiL'Amoroso, yw. –

Verwandte Themen