irgendwie ist heute der Wurm drin. Ich werde leider nicht schlau, wieso ich kein return von meinem Perl-Script bekomme, wenn ich es über einen WebRequst ansteuern will. Hier einmal der Code meines WebRequests (Die Zuweisung der ex Attribute an das Array waren nur zu Testzwecken):
#region Webresponse über URL public static string[] GetUrlResponse(string url, string username, string password) { string[] content = new string[11];
Mein Perl-Script macht nun einfach folgendes, es fragt den Parameter "param" ab und gibt den Wert mit einem einfachen print zurück (Kann auch gerne mit der o.g. URL getestet werden). Bei einem anderen Projekt hat der Aufruf damals geklappt, aber hier nicht...
Hmm, also bei mir muß ich immer explizit nach HttpWebResponse casten, damit der Debugger kein Fehler anzeigt. Weiß auch nicht was Microsoft sich dabei gedacht hat.
HttpWebRequest HttpWReq = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse(); StreamReader sr = new StreamReader(HttpWResp.GetResponseStream(), Encoding.ASCII);
Ja, hatte ich auch schon versucht, ist in meinem Beispiel als Kommentar über dem WebRequest, aber auch hierbei kommt beim GetResponse() ein TimeOut. Aber ich teste das gleich nochmal!
Hier ist in Zeile 3 ein Fehler: HttpWReq.GetResponseStream() müsste es heißen, aber dann hatte es geklappt ;-) Nur jetzt habe ich an gleicher Stelle wieder ein Problem.
Ich glaube Dein Perl-Script gibt kein NewLine aus. Also JEDE Zeile (auch die letzte) mit "\r\n" (je nach Config auch nur "\n") anbschliessen. Sonst macht sr.ReadLine() Mist.
So weit komm ich garnicht, er hängt schon in der Zeile WebResponse webResponse = webRequest.GetResponse(); bis zum TimeOut, danach folgt dann eben, dass der Remote Host nicht erreichbar wäre...