[Haskell-cafe] Trying to write a very simple HTTP Client
Eric
eeoam at ukfsn.org
Fri May 23 12:19:32 EDT 2008
Robert Greayer wrote:
> --- Eric <eeoam at 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.
More information about the Haskell-Cafe
mailing list