2017-01-31 5 views
0

Ich wollte POST ein WebRequest für ein Browser-Spiel in einer Schleife, weil der POST Inhalt enthält eine Nummer. Jetzt habe ich ein eingefrorenes Programm.C# HttpWebRequest "POST" mit Loop

Hier ist mein Code:

String loginData = "login"; 

// Set Cookie 
CookieContainer cookieContainer = new CookieContainer(); 

// Login 

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("URL"); 
req.CookieContainer = cookieContainer; 
req.Method = "POST"; 
req.ContentType = "application/x-www-form-urlencoded"; 
ASCIIEncoding encoding = new ASCIIEncoding(); 
byte[] loginDataBytes = encoding.GetBytes(loginData); 
req.ContentLength = loginDataBytes.Length; 
Stream stream = req.GetRequestStream(); 
stream.Write(loginDataBytes, 0, loginDataBytes.Length); 
stream.Close(); 
HttpWebResponse res = (HttpWebResponse)req.GetResponse(); 

// Start the Loop 

for (int i=1; i < 10; i++) 
{ 

    String Friendly = "frday=" + i; 

    req = (HttpWebRequest)HttpWebRequest.Create("URL"); 
    req.CookieContainer = cookieContainer; 
    req.Method = "POST"; 
    req.ContentType = "application/x-www-form-urlencoded"; 
    byte[] Fr = encoding.GetBytes(Friendly); 
    req.ContentLength = Fr.Length; 

    Stream stream = req.GetRequestStream(); 
    stream.Write(Fr, 0, Fr.Length); 
    stream.Close(); 

    Console.WriteLine("FriendlyNr: " + i); 
} 

Der Ausgang ist:

FriendlyNr: 1

Und das Browser bekam nur den einen Beitrag Inhalt.

So funktioniert der erste Lauf, aber der zweite Lauf hat nicht funktioniert. Das Programm friert bei

ein
Stream stream = req.GetRequestStream(); 

Ich möchte 10 mal Schleife. Wie erreiche ich das?

Antwort

0

Sie verwenden das gleiche Objekt Stream - Sie müssen jedes Mal ein neues HttpRequest verwenden. Werfen Sie einen Blick auf here, um eine mögliche Lösung zu sehen. Stellen Sie sicher, dass Sie auch das Objekt Stream schließen.

Darüber hinaus wird durch das Einfügen des Codes in eine using-Anweisung wie using (var requestStream = request.GetRequestStream()) sichergestellt, dass das Objekt ordnungsgemäß entsorgt und gesammelt wird.

+0

Danke <3 Es hat mir sehr geholfen. – Baumsi

+0

Wir freuen uns, Ihnen zu helfen, und begrüßen zu Stack Overflow! Wenn diese Antwort oder eine andere Lösung Ihr Problem behoben hat, markieren Sie es als akzeptiert, damit andere es in Zukunft finden können. Vielen Dank! – awh112