Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.ruby > #6782

Re: Common way to read/write to/from TCPSocket

From Simon Krahnke <overlord@gmx.li>
Newsgroups comp.lang.ruby
Subject Re: Common way to read/write to/from TCPSocket
Date 2013-04-06 03:49 +0200
Organization there's no z in organisation
Message-ID <871uaoe8dj.fsf@xts.gnuu.de> (permalink)
References <d71cdf0a-a7b8-4420-8db3-8e5b22486f19@googlegroups.com>

Show all headers | View raw


* yspro <2ys.pro@gmail.com> (2013-03-29) schrieb:

>Hi there! I want to know common way to create TCPSocket, write http request and get response.
>
>My simple function:
>
>def read_from_sock(host, port)
>  sock = TCPSocket.new(host, port)
>
>  request = ''
>  request << "GET / HTTP/1.1\r\n"
>  request << "Host: #{host}\r\n"
>  request << "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1\r\n"
>  request << "\r\n"
>
>  sock.write(request)
>  response = ''
>  
>  until sock.eof?
>    response << sock.read
>  end
>
>  sock.close
>  response
>end
>
>
>
>read_from_sock('yahoo.com', 80) returns
>
>"HTTP/1.1 301 Redirect\r\nDate: Fri, 29 Mar 2013 06:56:20 GMT\r\nConnection: close\r\nServer: YTS/1.20.13\r\nCache-Control: no-store\r\nContent-Type: text/html\r\nContent-Language: en\r\nLocation: http://www.yahoo.com/\r\nContent-Length: 211\r\n\r\n<HEAD><TITLE>Redirect</TITLE></HEAD>\n<BODY BGCOLOR=\"white\" FGCOLOR=\"black\">\n<FONT FACE=\"Helvetica,Arial\"><B>\n \"<em>http://www.yahoo.com/</em>\".<p></B></FONT>\n\n<!-- default \"Redirect\" response (301) -->\n</BODY>\n\u0000"
>
>read_from_sock('facebook.com', 80) or read_from_sock('google.com', 80) hangs forever

Your code works with me after i applied Robert's changes and I commented
out the User-Agent line.

They all (haven't tried facebook) redirect with 301 code, there's
nothing wrong with that. If you plan to do a full http-client than good
luck, its quite a lot of work.

mfg,                       simon .... l

Back to comp.lang.ruby | Previous | NextPrevious in thread | Find similar


Thread

Common way to read/write to/from TCPSocket yspro <2ys.pro@gmail.com> - 2013-03-29 00:00 -0700
  Re: Common way to read/write to/from TCPSocket Robert Klemme <shortcutter@googlemail.com> - 2013-03-29 15:23 +0100
  Re: Common way to read/write to/from TCPSocket Simon Krahnke <overlord@gmx.li> - 2013-04-06 03:49 +0200

csiph-web