In meinem Code, ich tue unterHttpWebResponse nicht immer vollständige Antwort, wenn Content-Length ist 67722
HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();
Stream dataStream = response.GetResponseStream();
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
httpWebRequest
wird eine Anforderung POST, deren Antwortgröße in Fiddler nach einer Umleitung 67722. response.ContentLength
Feld zurück in meinem Fall ist -1 und Gesamtgröße von responseFromServer
ist ungefähr 32695. Es schneidet einfach die restlichen Daten aus der Antwort. Ich habe gesehen, irgendwo zu verwenden maxReceivedMessageSize
, aber nicht in der Lage, unser wie es zu tun.
responseFromServer.Length 32695
response.ContentLength -1
response.GetResponseHeader ("Transfer-Encoding") ""
UPDATE: FINAL
Die Antwort kam richtig. Problem war mit meinem Code, wo Parameter, die an die POST-Abfrage gesendet wurden, nicht richtig durch UrlEncoding codiert wurden. Wenn es sich um ASP.net contentpanel control handelt, ist zu beachten, dass es die POST-Abfrage mit Steuernamen mit dem Sonderzeichen '$' sendet. Wir müssen dies codieren mit HttpUtility.UrlEncoding Methode
Ist der Header 'transfer-encoding' in der Antwort auf' chunked' gesetzt? – spender
@spender es zu leeren String bestimmt gesetzt wird durch 'response.GetResponseHeader (" transfer -encoding ")' –