HttpWebResponse is truncated

  • Thread starter Thread starter Dean Rettig
  • Start date Start date
D

Dean Rettig

I am using HttpWebRequest to get an HttpWebResponse from an https://
site.

I am using cookies and certificates and everything seems to be working
properly EXCEPT...

The largest (html) document that I am trying to read is about 28788
bytes when downloaded using Firefox

but when my dotnet app tries to retrieve it, the response is only about
26580 bytes. Here is a code snippet:

HttpWebResponse response = (HttpWebResponse) request.GetResponse ( );
System.Text.Encoding enc = System.Text.Encoding.GetEncoding(1252); //
Windows default Code Page
System.IO.StreamReader reader = new System.IO.StreamReader(
response.GetResponseStream(), enc );
string content = reader.ReadToEnd();
reader.Close();
response.Close();

I've tried different methods of StreamReader all with the same results.
Can anyone tell me where the last 2KB of my response is going and how
I can get it back?

Muchas grathias,
Dean
 
Hi,

Dean said:
I am using HttpWebRequest to get an HttpWebResponse from an https://
site.

I am using cookies and certificates and everything seems to be working
properly EXCEPT...

The largest (html) document that I am trying to read is about 28788
bytes when downloaded using Firefox

but when my dotnet app tries to retrieve it, the response is only about
26580 bytes. Here is a code snippet:

HttpWebResponse response = (HttpWebResponse) request.GetResponse ( );
System.Text.Encoding enc = System.Text.Encoding.GetEncoding(1252); //
Windows default Code Page
System.IO.StreamReader reader = new System.IO.StreamReader(
response.GetResponseStream(), enc );
string content = reader.ReadToEnd();
reader.Close();
response.Close();

I've tried different methods of StreamReader all with the same results.
Can anyone tell me where the last 2KB of my response is going and how
I can get it back?

Muchas grathias,
Dean

It's possible that the code sent from the server to the client is
different depending on the client's user agent string. Rather than
checking the response size, check if the code is complete (you don't say
if it is), i.e. if a valid document is sent back.

HTH,
Laurent
 
Thus wrote Dean,
I am using HttpWebRequest to get an HttpWebResponse from an https://
site.

I am using cookies and certificates and everything seems to be working
properly EXCEPT...

The largest (html) document that I am trying to read is about 28788
bytes when downloaded using Firefox

but when my dotnet app tries to retrieve it, the response is only
about 26580 bytes. Here is a code snippet:

HttpWebResponse response = (HttpWebResponse) request.GetResponse ( );
System.Text.Encoding enc = System.Text.Encoding.GetEncoding(1252); //
Windows default Code Page
System.IO.StreamReader reader = new System.IO.StreamReader(
response.GetResponseStream(), enc );
string content = reader.ReadToEnd();
reader.Close();
response.Close();
I've tried different methods of StreamReader all with the same
results.
Can anyone tell me where the last 2KB of my response is going and how
I can get it back?

Try to do a binary download of the file. You could dump the response stream
to a file and check if it has the expected length. Maybe the response contains
a byte sequence (like 0x00 ) that makes the decoder stumble.

Cheers,
 
I've figured it out. It had nothing to do with HttpWebRequest.

I was trying to display the results in a Textbox and wasn't aware that
it had a max string length limit of 32768 characters

thanks everyone..
 
Back
Top