HttpWebResponse is truncated

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
 
L

Laurent Bugnion [MVP]

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
 
J

Joerg Jooss

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,
 
D

Dean Rettig

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..
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top