I've made some tests (with telnet and ethereal) and found out that if I change the HTTPSocket class>>httpGetDocument: args: accept: request: to not use the port in the GET requeast (Host: www.btrl.ro instead of Host: www.btrl.ro:80)
sock sendCommand: 'GET ' , page , ' HTTP/1.0' , CrLf , (mimeType ifNil: [''] ifNotNil: ['ACCEPT: ' , mimeType , CrLf]) , 'ACCEPT: text/html' , CrLf , HTTPBlabEmail , requestString , self userAgentString , CrLf , 'Host: ' , serverName , CrLf.
it works. This is strange because I do not have this problem from my work network, only from home.
On Tue, 14 Dec 2004 22:00:12 +0200 (EET), cdan@savatech.ro cdan@savatech.ro wrote:
-------- Original Message -------- Subject: Re: ERROR 'server aborted early' From: Matthew S. Hamrick matthew.hamrick@gibson.com Date: Tue, December 14, 2004 6:19 pm To: The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org
Hi Dan, I don't have the bandwidth to track this down completely... But I might be able to give you a few pointers. From the unix command line, I did a:
telnet www.btrl.ro 80
and when I was connected, issued the following:
GET /ro/istoric.php?vid=2 HTTP/1.0
Instead of getting a response, the server closed the connection. My guess is that this server really wants to see certain headers and if it doesn't see them, it drops the connection as a security measure. You might want to try the retreiveContentsAccept: or retreiveContentsArgs: accept: methods and experiment with headers. If you really want to get into it, you could use ethereal to find out what headers your web browser is providing the server and simply add those to your request.
Sorry I don't have a lot of time to devote to this... but I thought I would respond as it's similar to an issue I had earlier. The paragraph above is how I solved my problem.
/etc Matt H.
squeak-dev@lists.squeakfoundation.org