getResponse in c# nicht funktioniert. Keine Antwort kommt zurück
Ich habe diesen code in C#:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.Timeout = 30000;
request.Method = "POST";
request.KeepAlive = true;
request.AllowAutoRedirect = false;
Stream newStream = request.GetRequestStream();
newStream.Write(bPostData, 0, bPostData.Length);
byte[] buf = new byte[1025]; int read = 0; string sResp = "";
HttpWebResponse wResp = (HttpWebResponse)request.GetResponse();
Stream resp = wResp.GetResponseStream();
Die Linie HttpWebResponse wResp =...
hängt nur (wie in keine Antwort von der URL). Ich bin mir nicht sicher, wo genau Ihr Absturz (Ursache, die ich nicht sogar erhalten eine Ausnahme Fehlermeldung). Getestet habe ich die URL in den IE und es funktioniert gut. Ich habe auch überprüft die bPostData und dass man Daten in Sie.
Wo ist es schief gehen kann?
- was bedeutet
url
Aussehen? - Wussten Sie, warten Sie 30 Sekunden?
- test.abc.com/newtest .. Normale URL
- ja, ich habe, warten Sie 30 Sekunden.
- Versuchen Sie
http
zu Ihrer url. Es werfen sollteUriFormatException
wenn überhaupt, also bin ich nicht sicher, warum, es hängt an dieser Zeile. - Dies könnte ein firewall-Problem. Ihre Sicherheit kann durch das zulassen von requests vom Browser (IE/Firefox/Safari) post eine Anfrage über port 80, aber der HttpWebRequest-Klasse aus Ihrer app können nicht zugelassen werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schließen Sie das Anfrage-stream in variable newStream. Vielleicht ist die API wartet, bis es getan werden.
Erhöhen Sie den Grenzwert:
Versuchen, vereinfachen Sie Ihren code und fälscht einen user-agent. Vielleicht ist die Webseite ist das blockieren/drosseln Abstreifer/bots. Auch gewährleisten, dass Ihre
application/x-www-form-urlencoded
HTTP-POST-Werte sind korrekt codiert. Für diese würde ich dir empfehlen WebClient:Als ich sagte früher, ich hatte den code an mein Büro (stark hinter einer Firewall) bekam ich das gleiche Ergebnis du hast. Nach Hause kam, versuchte es wieder (weniger stimmt) es hat funktioniert... ich vermute, Sie haben eine Barriere dar. Ich glaube, Sie sind mit einem firewall-Problem.
Verwenden Sie ein content-length=0
Beispiel: