Robert Greayer wrote:
--- Eric <eeoam@ukfsn.org> wrote:
Hi all,
I've written the following program to connect to a submit an HTTP GET request to a server and print the response:
module Main where
import Network import System.IO
main = withSocketsDo go
go = do putStrLn "Connecting..." out <- connectTo "haskell.org" (PortNumber 80) hPutStrLn out "GET /\r" hPutStrLn out "Host: haskell.org\r" hPutStrLn out "\r" cs <- hGetLine out hClose out print cs
When I run the program, however, I get the following error:
HTTPClient: <socket: 1872>: hGetLine: end of file
Can anyone see what's wrong?
E.
Try calling 'hFlush out' prior to the call to hGetLine. I believe the output to the socket is buffered, so the receiver isn't seeing your GET request, and eventually closes the connection on its end, leading to the EOF on the hGetLine.
That works! Thank you! Eric M.