Hey, ich habe bereits in einem anderen Forum geschrieben, jedoch keine Antwort bekommen
Ich rufe in meinem Hauptprogramm:
1. die Loginfunktion auf "LogIn"
2. hole ich mir den Quelltext einer URL, wofür man Cookies benötigt mit "GetHtml"
3. mache eine Postanfrage mit "GetHtmlPost"
------
4. jetzt will ich mir eine neue URL mit GetHtml holen, jedoch bekomme ich nun bei
C#-Quelltext
1:
| response = (HttpWebResponse)request.GetResponse(); |
in "GetHtml" einen Timeout.
Ich hatte jetzt vor den ersten GetHtml Aufruf (der ja funktioniert, solange noch nicht GetHtmlPost aufgerufen wurde), mit dem GetHtml Aufruf
nach GetHtmlPost zu vergleichen. Gibt es im Visual Studio 2008 irgendwie die Funktion, 2 Klassen miteinander zu vergleichen oder hat sonst irgendjemand die Lösung des Problems?
Würde mich sehr freuen, vielen Dank.
Mein Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54:
| class HttpHelper { private CookieContainer cookieContainer = new CookieContainer(); HttpWebRequest request; HttpWebResponse response; StreamReader sr;
public string GetHtml(string url, string useragent, string referer) { request = (HttpWebRequest)HttpWebRequest.Create(klickurl); request.CookieContainer = cookieContainer; request.Method = "GET"; request.Referer = referer; request.UserAgent = useragent; response = (HttpWebResponse)request.GetResponse(); sr = new StreamReader(response.GetResponseStream()); string html = sr.ReadToEnd(); sr.Close(); response.Close(); return html; }
public void GetHtmlPost(string sendestring, string useragent, string sendeurl, string referer) { request = (HttpWebRequest)HttpWebRequest.Create(sendeurl); request.Method = "POST"; request.Referer = referer; request.UserAgent = useragent; request.ContentType = "application/x-www-form-urlencoded"; ASCIIEncoding encoding = new ASCIIEncoding(); byte[] loginDataBytes = encoding.GetBytes(sendestring); request.ContentLength = loginDataBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(loginDataBytes, 0, loginDataBytes.Length); stream.Close(); response = (HttpWebResponse)request.GetResponse(); }
public void LogIn(string loginstring, string useragent, string loginurl, string referer) { request = (HttpWebRequest)HttpWebRequest.Create(loginurl); request.CookieContainer = cookieContainer; request.Method = "POST"; request.Referer = referer; request.UserAgent = useragent; request.ContentType = "application/x-www-form-urlencoded"; ASCIIEncoding encoding = new ASCIIEncoding(); byte[] loginDataBytes = encoding.GetBytes(loginstring); request.ContentLength = loginDataBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(loginDataBytes, 0, loginDataBytes.Length); stream.Close(); response = (HttpWebResponse)request.GetResponse(); } |