úÎ@"<>      !"#$%&'()*+,-./(+,(+,01234232318A simple representation of the HTTP response created by .  KAll information on how to connect to a host and what should be sent in the  HTTP request. /If you simply wish to download from a URL, see . #HTTP request method, eg GET, POST.  Whether to use HTTPS (ie, SSL). .Everything from the host to the query string. ,Automatically escaped for your convenience. 5JThe OpenSSL library requires some initialization of variables to be used,  and therefore you must call  withOpenSSL$ before using any of its functions. , As this library uses OpenSSL, you must use  withOpenSSL as well. (As a side  note, you';ll also want to use the withSocketsDo function for network  activity.) KTo future-proof this package against switching to different SSL libraries,  we re-export  withOpenSSL0 under this name. You can call this function as G early as you like; in fact, simply wrapping the do block of your main  function is probably best. 6789:<The most low-level function for initiating an HTTP request. GThe second argument to this function gives a full specification on the K request: the host to connect to, whether to use SSL, headers, etc. Please  see   for full details. CThe first argument specifies how the response should be handled. It's a M function that takes two arguments: the first is the HTTP status code of the I response, and the second is a list of all response headers. This module  exports , which generates a  value. KNote that this allows you to have fully interleaved IO actions during your G HTTP download, making it possible to download very large responses in  constant memory. ;<=>?Convert a URL into a  . $This defaults some of the values in  , such as setting   to  GET and  to []. Since this function uses @+, the return monad can be anything that is  an instance of @ , such as A or B. CDEFGH!Convert the HTTP response into a  value. Even though a 0 contains a lazy bytestring, this function does  not utilize lazy I/7O, and therefore the entire response body will live in / memory. If you want constant memory usage, you'll need to write your own  iteratee and use  or  directly. Download the specified  , returning the results as a .  This is a simplified version of & for the common case where you simply N want the response data as a simple datatype. If you want more power, such as > interleaved actions on the response body during download, you'll need to use  ( directly. This function is defined as:  httpLbs = http lbsIter Please see ! for more information on how the  value is  created. DDownload the specified URL, following any redirects, and return the  response body. This function will I an  for any response with a  non-2xx status code. It uses # to parse the input. This function  essentially wraps . Same as ;, but follows all 3xx redirect status codes that contain a  location header. Download the specified  , returning the results as a  ' and automatically handling redirects.  This is a simplified version of  for the common case where you M simply want the response data as a simple datatype. If you want more power, F such as interleaved actions on the response body during download, you'll  need to use ( directly. This function is defined as:  &httpLbsRedirect = httpRedirect lbsIter Please see ! for more information on how the  value is  created. J!Add url-encoded paramters to the  . This sets a new ), adds a content-type request header and  changes the   to POST. K      L       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQCDRSTUhttp-enumerator-0.2.0Network.HTTP.EnumeratorNetwork.HTTP.Enumerator.Zlib"Network.HTTP.Enumerator.HttpParserNetwork.TLS.Client.Enumerator HttpExceptionHttpParserExceptionTooManyRedirectsInvalidUrlExceptionStatusCodeExceptionHeadersResponse statusCoderesponseHeaders responseBodyRequestmethodsecurehostportpath queryStringrequestHeaders requestBodywithHttpEnumeratorhttpparseUrllbsIterhttpLbs simpleHttp httpRedirecthttpLbsRedirecturlEncodedBodyungzipungzip'StatusHeader parseHeadernotNewlineColonisSpace notNewlinenewline parseHeaders iterHeaders parseStatusparseChunkHeaderiterChunkHeader iterNewlineattribshexshexIState newIStateclientEnumSimple clientEnum tlsHelperWithConn getSocketwithSocketConn writeToIter readToEnum withSslConnchunkedEnumerateetakeLBSrenderQSencodeUrlCharPI encodeUrlChar failure-0.1.0Control.FailureFailureghc-prim GHC.TypesIObase Data.MaybeMaybe parseUrl1 parseUrl2parseQueryStringqsDecodeuncons breakDiscardfailurereadMay catchParser