Cookbook/Network programming
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
The following example makes use of the Network and System.IO libraries to open a socket connection to Google and retrieve the Google home page.
import Network;
import System.IO;
main = withSocketsDo $ do
h <- connectTo "www.google.com" (PortNumber 80)
hSetBuffering h LineBuffering
hPutStr h "GET / HTTP/1.1\nhost: www.google.com\n\n"
contents <- hGetContents h
putStrLn contents
hClose h
The following example POSTs via a proxy.
import Network.URI
import Network.HTTP
import Network.Browser
Just pollUri = parseURI "http://example.com/question?life&universe&everything" -- WARNING: only works with hardcoded arguments like this one
body = "answer=42"
headers = [Header HdrContentType "application/x-www-form-urlencoded",
Header HdrContentLength (show . length $ body)]
pollRq = Request {
rqURI = pollUri, rqMethod = POST,
rqHeaders = headers,
rqBody = body
}
-- Default polipo setting
p = Proxy "localhost:8118" Nothing
main = browse $ do
setProxy p
request pollRq