On Fri, May 23, 2008 at 3:27 PM, Eric <[EMAIL PROTECTED]> 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?
I think you need to either print cs before you close the socket or make sure that cs is force (~computed) before you close the socket as laziness makes it get evaluated when you call print cs rather than when you call hGetLine. In other words, you try to read from the socket after you've closed it. Cheers, Johan _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
