h&oOf      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred%&8C   Safe-Inferredw(c) 2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Safe-Inferred "%&)*68<8!wreqA session that spans multiple requests. This is responsible for cookie management and TCP connection reuse.wreqA function that runs a request and returns the associated response.wreq(A request that is ready to be submitted.wreqAn element of a Link header.wreqThe error type used by   and  ; if a failure occurs when parsing a response body as JSON.wreqA key/value pair for an !application/x-www-form-urlencoded POST request body.wreqA type that can be rendered as the value portion of a key/value pair for use in an !application/x-www-form-urlencoded' POST body. Intended for use with the  type.The instances for  , strict  , and lazy   7 are all encoded using UTF-8 before being URL-encoded.The instance for  gives an empty string on 4, and otherwise uses the contained type's instance.wreqRender the given value. wreq;A product type for representing more complex payload types."wreq8A type that can be converted into a PUT request payload.#wreqRepresent a value in the request body (and perhaps the headers) of a PUT request.$wreq:A type that can be converted into a PATCH request payload.&wreq9A type that can be converted into a POST request payload.)wreqAWS request signing version 4*wreqSupported authentication types.Do not use HTTP authentication unless you are using TLS encryption. These authentication tokens can easily be captured and reused by an attacker if transmitted in the clear.+wreqBasic authentication. This consists of a plain username and password.,wreqAn OAuth2 bearer token. This is treated by many services as the equivalent of a username and password.-wreqA not-quite-standard OAuth2 bearer token (that seems to be used only by GitHub). This is treated by whoever accepts it as the equivalent of a username and password..wreqAmazon Web Services request signing AWSAuthVersion key secret (optional: session-token)/wreqAmazon Web Services request signing AWSAuthVersion key secret Maybe (service, region)0wreqOAuth1 request signing OAuth1 consumerToken consumerSecret token secret1wreqA function that checks the result of a HTTP request and potentially throw an exception.2wreq!Options for configuring a client.4wreqEither configuration for a , or an actual .If only & are provided, then by default a new " will be created for each request.Note#: when issuing HTTP requests using 2-based functions from the the Network.Wreq.Session module ( , %, etc.), this field will be ignored.'An example of using a specific manager: import Network.HTTP.Client ()  $ \mgr -> do let opts =  { 4 = Right mgr }   opts "http://httpbin.org/get" ;An example of changing settings (this will use a separate  for every request, so make sense only if you're issuing a tiny handful of requets): import Network.HTTP.Client () let settings = % { managerConnCount = 5 } opts =  { 4 = Left settings }   opts "http://httpbin.org/get" 5wreq.Host name and port for a proxy to use, if any.6wreqAuthentication information.Example (note the use of TLS):  let opts =  { 6 =  "user" "pass" }  2 opts "https://httpbin.org/basic-auth/user/pass" 7wreq-Additional headers to send with each request.  let opts =  { 7 = [("Accept", "*/*")] }   opts "http://httpbin.org/get" 8wreqKey-value pairs to assemble into a query string to add to the end of a URL.For example, given:  let opts = 7 { params = [("sort", "ascending"), ("key", "name")] }   opts "http://httpbin.org/get" %This will generate a URL of the form: .http://httpbin.org/get?sort=ascending&key=name9wreqThe maximum number of HTTP redirects to follow before giving up and throwing an exception.In this example, a  will be thrown with a  constructor, because the maximum number of redirects allowed will be exceeded:  let opts =  { 9 = 3 }  ' opts "http://httpbin.org/redirect/5" :wreq%Cookies to set when issuing requests.Note#: when issuing HTTP requests using 2-based functions from the the Network.Wreq.Session module ( , /, etc.), this field will be used only for the first% HTTP request to be issued during a . Any changes changes made for subsequent requests will be ignored.;wreqFunction that checks the status code and potentially returns an exception.This defaults to &, which will just use the default of  which throws a StatusException if the status is not 2XX.<wreqA MIME content type, e.g. "application/octet-stream".=wreq)Return the URL associated with the given .This includes the port number if not standard, and the query string if one exists.< !"#$%&'()*0+,-./12365;4978:<=3 Safe-Inferred Safe-Inferredwreq;Set a header to the given value, replacing any prior value.wreqSet a header to the given value, but only if the header was not already set.> Safe-Inferred"(c) 2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Safe-Inferred"`* !"#$%&'()*0+,-./12365;4978:<=*2365;4978:*0+,-./()1 !&'$%"#<= Safe-Inferred" Safe-Inferred" 5 2(c) 2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Safe-Inferred:0-uwreqA lens onto configuration of the connection manager provided by the http-client package.In this example, we enable the use of OpenSSL for (hopefully) secure connections: import OpenSSL.Session ( ) import Network.HTTP.Client.OpenSSL let opts =   u   Left (!" ) !# $  ! opts "https://httpbin.org/get" In this example, we also set the response timeout to 10000 microseconds: import OpenSSL.Session ( ) import Network.HTTP.Client.OpenSSL import Network.HTTP.Client (, $) let opts =   u   Left (!" )  u   Left ( { $# = responseTimeoutMicro 10000 } ) !# $  ! opts "https://httpbin.org/get" vwreq A lens onto proxy configuration.Example:  let opts =   v % & "localhost" 8000   opts "http://httpbin.org/get" Note here the use of the % setter to turn a  into a  3, to make the type of the RHS compatible with the '( lens.wwreq#A lens onto request authentication.Example (note the use of TLS):  let opts =   ') %  "user" "pass"  2 opts "https://httpbin.org/basic-auth/user/pass" xwreqA lens onto all headers with the given name (there can legitimately be zero or more).Example:  let opts =   x "Accept"   ["*/*"]   opts "http://httpbin.org/get" ywreqA lens onto all headers (there can legitimately be zero or more).In this example, we print all the headers sent by default with every request. print ( * y) zwreqA lens onto all query parameters with the given name (there can legitimately be zero or more)..In this example, we construct the query URL "'http://httpbin.org/get?foo=bar&foo=quux".  let opts =   z "foo"   ["bar", "quux"]   opts "http://httpbin.org/get" {wreq!A lens onto all query parameters.|wreqA lens onto the maximum number of redirects that will be followed before an exception is thrown.In this example, a  will be thrown with a  constructor, because the maximum number of redirects allowed will be exceeded.  let opts =   |   3  ' opts "http://httpbin.org/redirect/5" }wreq0A lens to get the optional status check function~wreq?A traversal onto the cookie with the given name, if one exists.N.B. This is an "illegal" : we can change the  of the associated = so that it differs from the name provided to this function.wreqA lens onto all cookies.wreq!A lens onto the name of a cookie.wreq"A lens onto the value of a cookie.wreq(A lens onto the expiry time of a cookie.wreq#A lens onto the domain of a cookie.wreq!A lens onto the path of a cookie.wreq*A lens onto the creation time of a cookie.wreq-A lens onto the last access time of a cookie.wreqA lens onto whether a cookie is persistent across sessions (also known as a "tracking cookie").wreq*A lens onto whether a cookie is host-only.wreqA lens onto whether a cookie is secure-only, such that it will only be used over TLS.wreq,A lens onto whether a cookie is "HTTP-only".Such cookies should be used only by browsers when transmitting HTTP requests. They must be unavailable in non-browser environments, such as when executing JavaScript scripts.wreq:A lens onto the hostname portion of a proxy configuration.wreq9A lens onto the TCP port number of a proxy configuration.wreq+A lens onto the status of an HTTP response.wreq,A lens onto the version of an HTTP response.wreq;A lens onto all matching named headers in an HTTP response.To access exactly one header (the result will be the empty string if there is no match), use the (* ) operator. r <- +# "http://httpbin.org/get" print (r *  "Content-Type") 1To access at most one header (the result will be " if there is no match), use the (, ) operator. r <- +# "http://httpbin.org/get" print (r ,  "Content-Transfer-Encoding") 9To access all (zero or more) matching headers, use the (- ) operator. r <- +# "http://httpbin.org/get" print (r -  "Set-Cookie") wreq,A lens onto all headers in an HTTP response.wreq A fold over Link5 headers, matching on both parameter name and value.For example, here is a Link* header returned by the GitHub search API. Link: ; rel="next", ; rel="last">And here is an example of how we can retrieve the URL for the next link programatically. r <- + "https://api.github.com/search/code?q=addClass+user:mozilla" print (r ,  "rel" "next" . ) wreq#A lens onto the body of a response. r <- +# "http://httpbin.org/get" print (r * ) wreq2A fold over any cookies that match the given name. r <- +$ "http://www.nytimes.com/" print (r , responseCookie "RMID") wreq,A lens onto all cookies set in the response.wreq6A lens onto the final request of a historied response.wreq7A lens onto the final response of a historied response.wreq:A lens onto the list of redirects of a historied response.wreq5A lens onto the numeric identifier of an HTTP status.wreq6A lens onto the textual description of an HTTP status.wreq!A lens onto the URL portion of a Link element.wreq A lens onto the parameters of a Link element.wreqA lens onto the name of the  input: element associated with part of a multipart form upload.wreqA lens onto the filename associated with part of a multipart form upload.wreqA lens onto the content-type associated with part of a multipart form upload.wreqA lens onto the code that fetches the data associated with part of a multipart form upload.wreqTurn an attoparsec  into a .Both headers and bodies can contain complicated data that we may need to parse.Example: when responding to an OPTIONS request, a server may return the list of verbs it supports in any order, up to and including changing the order on every request (which httpbin.org /actually does/!). To deal with this possibility, we parse the list, then sort it.,import Data.Attoparsec.ByteString.Char8 as Aimport Data.List (sort))let comma = skipSpace >> "," >> skipSpace3let verbs = A.takeWhile isAlpha_ascii `sepBy` comma%r <- options "http://httpbin.org/get"2r ^. responseHeader "Allow" . atto verbs . to sort["GET","HEAD","OPTIONS"]wreq The same as 9, but ensures that the parser consumes the entire input.Equivalent to:  myParser =  (myParser  ) wreqHeader name to match.wreqParameter name to match.wreqParameter value to match.wreqName of cookie to match.6 12uvwxyz{|}~62uvwxz|y{~1}   Safe-Inferred"%&68;;. Safe-Inferred;B/ Safe-Inferred")*;~(c) 2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Safe-Inferred"\"wreqIssue a GET request.Example:  "http://httpbin.org/get" !r <- get "http://httpbin.org/get" r ^. responseStatus . statusCode200wreq(Issue a GET request, using the supplied 2.Example:  let opts =   z "foo"  ["bar"]  opts "http://httpbin.org/get" ,let opts = defaults & param "foo" .~ ["bar"]*r <- getWith opts "http://httpbin.org/get"r ^? responseBody . key "url".Just (String "http://httpbin.org/get?foo=bar")wreqIssue a POST request.Example:  "http://httpbin.org/post" ( [1,2,3]) 4r <- post "http://httpbin.org/post" (toJSON [1,2,3])&r ^? responseBody . key "json" . nth 2Just (Number 3.0)wreq)Issue a POST request, using the supplied 2.Example:  let opts =   z "foo"  ["bar"] ! opts "http://httpbin.org/post" ( [1,2,3]) ,let opts = defaults & param "foo" .~ ["bar"]=r <- postWith opts "http://httpbin.org/post" (toJSON [1,2,3])r ^? responseBody . key "url"/Just (String "http://httpbin.org/post?foo=bar")wreqIssue a HEAD request.Example:  "http://httpbin.org/get" #r <- head_ "http://httpbin.org/get""r ^? responseHeader "Content-Type"Just "application/json"wreq)Issue a HEAD request, using the supplied 2.Example:  let opts =   z "foo"  ["bar"]  opts "http://httpbin.org/get" ,let opts = defaults & param "foo" .~ ["bar"]+r <- headWith opts "http://httpbin.org/get" r ^? responseHeader "Connection"Just "keep-alive"wreqIssue a PUT request.wreq(Issue a PUT request, using the supplied 2.wreqIssue a PATCH request.wreq*Issue a PATCH request, using the supplied 2.wreqIssue an OPTIONS request.Example:  "http://httpbin.org/get" See # for a more complex worked example.wreq-Issue an OPTIONS request, using the supplied 2.Example:  let opts =   z "foo"  ["bar"]  opts "http://httpbin.org/get" wreqIssue a DELETE request.Example:  "http://httpbin.org/delete" 'r <- delete "http://httpbin.org/delete" r ^. responseStatus . statusCode200wreq+Issue a DELETE request, using the supplied 2.Example:  let opts =   |  0 # opts "http://httpbin.org/delete" $let opts = defaults & redirects .~ 00r <- deleteWith opts "http://httpbin.org/delete" r ^. responseStatus . statusCode200wreqIssue a custom-method requestExample: $ "PATCH" "http://httpbin.org/patch" 4r <- customMethod "PATCH" "http://httpbin.org/patch" r ^. responseStatus . statusCode200wreq:Issue a custom request method request, using the supplied 2.Example:  let opts =   |  0 * "PATCH" opts "http://httpbin.org/patch" $let opts = defaults & redirects .~ 0=r <- customMethodWith "PATCH" opts "http://httpbin.org/patch" r ^. responseStatus . statusCode200wreqIssue a custom request method. Keep track of redirects and return the Example: ' "GET" "http://httpbin.org/redirect/3" r <- customHistoriedMethod "GET" "http://httpbin.org/redirect/3"length (r ^. hrRedirects)3wreq:Issue a custom request method request, using the supplied 2*. Keep track of redirects and return the .wreq,Issue a custom-method request with a payloadwreqIssue a custom-method request with a payload, using the supplied 2.wreq6Issue a custom-method historied request with a payloadwreqIssue a custom-method historied request with a paylod, using the supplied 2.wreqConvert the body of an HTTP response from JSON to a suitable Haskell type.In this example, we use  in the IO monad, where it will throw a 4 exception if conversion to the desired type fails. ' {-# LANGUAGE DeriveGeneric #-} import  GHC.Generics (01) {- This Haskell type corresponds to the structure of a response body from httpbin.org. -} data GetBody = GetBody { headers :: 23   , args :: 23   , origin ::  , url ::  } deriving (Show, 01) -- Get GHC to derive a  instance for us. instance  GetBody {- The fact that we want a GetBody below will be inferred by our use of the "headers" accessor function. -} foo = do r <-  =<< . "http://httpbin.org/get" print (headers (r *  responseBody))  If we use  in the  monad, it will return  with a " payload if conversion fails, and  with a   whose  responseBody# is the converted value on success.wreq4Convert the body of an HTTP response from JSON to a Value.In this example, we use  in the IO monad, where it will throw a  exception if the conversion to Value fails. foo = do r <-  =<< % "http://httpbin.org/get" print (r ,  responseBody& . key "headers" . key "User-Agent") wreqBasic authentication. This consists of a plain username and password.Example (note the use of TLS):  let opts =   w ?~  "user" "pass" 2 opts "https://httpbin.org/basic-auth/user/pass" Note here the use of the % setter to turn an * into a  *3, to make the type of the RHS compatible with the w lens.5let opts = defaults & auth ?~ basicAuth "user" "pass".wreqThe body for this .wreq"Name of the corresponding .wreqThe body for this .  !()*2uvwxyz{|}~2uxz|y{~}*()wv !  (c) 2014 Bryan O'Sullivan BSD-stylebos@serpentine.com experimentalGHC Safe-Inferred%&f|wreq Create a *, passing it to the given function. The 5 will no longer be valid after that function returns.This session manages cookies and uses default session manager configuration.wreq Create a .This session manages cookies and uses default session manager configuration.wreqCreate a session.This uses the default session manager settings, but does not manage cookies. It is intended for use with REST-like HTTP-based APIs, which typically do not use cookies.wreqCreate a session.This uses the default session manager settings, but does not manage cookies. It is intended for use with REST-like HTTP-based APIs, which typically do not use cookies.wreqCreate a session, using the given manager settings. This session manages cookies.wreqCreate a session, using the given cookie jar and manager settings.wreqCreate a session, using the given cookie jar and manager settings.wreqExtract current 4 from a wreq-specific version of +.wreq-specific version of 5.wreq-specific version of 6.wreq-specific version of 7.wreq-specific version of 8.wreq-specific version of 9.wreq-specific version of :.wreq-specific version of  .wreq-specific version of ;.wreq-specific version of <.wreq-specific version of =.wreq-specific version of .wreq-specific version of >.wreq-specific version of ?.wreq-specific version of @.wreq-specific version of A.wreq-specific version of B.wreqIf 7 is specified, no cookie management will be performed.wreqIf 7 is specified, no cookie management will be performed.>>CDECDFCDGCDHCDICJCKLCKMCKMCKNOPQRSTU9VWXYZ[[\]^^_`abcdefghijklmnopqrstuuv()wxyz{|}~v()wxy{z\]/+ 5;6<87=9>:?@AB  &+56789: ;<=>?@AB CKCKCK~Z{(CD){zwvx(y]\........////////////////// #wreq-0.5.4.2-LoLnqLi29wv12H87LKV4Yl Network.WreqNetwork.Wreq.LensNetwork.Wreq.Cache.StoreNetwork.Wreq.SessionNetwork.Wreq.TypesNetwork.Wreq.CacheNetwork.Wreq.Internal.OAuth1Network.Wreq.Internal.TypesasJSONasValueData.Text.LazyTextgetWithputWithNetwork.HTTP.Client withManagerdefaultsdefaultManagerSettings basicAuth HttpExceptionTooManyRedirectsSessionNetwork.Wreq.Lens.MachineryNetwork.Wreq.Internal.LensNetwork.Wreq.Internal.AWSNetwork.Wreq.Internal.LinkNetwork.Wreq.Lens.THOpenSSL.Sessioncontext Control.Lens&.~Network.HTTP.Client.OpenSSLopensslManagerSettings withOpenSSLmanagerResponseTimeout?~ httpProxyLensproxyauth^.get^?^.. Paths_wreqNetwork.Wreq.Internal GHC.GenericsGenericData.MapMap CookieJarposthead_optionsputdelete customMethodpostWithheadWith optionsWith deleteWithcustomMethodWithcustomHistoriedMethodWithcustomPayloadMethodWith customHistoriedPayloadMethodWith+http-client-0.7.13.1-1sAFiGw0a9sFEb9ARJy1D7%Network.HTTP.Client.MultipartFormDatapartFileSourcepartFilepartLBSpartBSPartHistoriedResponseNetwork.HTTP.Client.TypesCookieProxyResponse(http-types-0.12.3-JlXMXDo7mr8Ke1ukSqfJrBNetwork.HTTP.Types.StatusStatusStoreemptyinsertlookupfromListtoList $fShowStoreRunReqLinklinkURL linkParams JSONError FormParam:= FormValuerenderFormValuePayloadRawPutable putPayload Patchable patchPayloadPostable postPayloadAWSAuthVersionAWSv4Auth BasicAuth OAuth2Bearer OAuth2TokenAWSAuth AWSFullAuthOAuth1ResponseCheckerOptionsmanagerheadersparams redirectscookies checkResponse ContentTypereqURLseshRun$fFormValueMaybe $fFormValue()$fFormValueDouble$fFormValueFloat$fFormValueWord64$fFormValueWord32$fFormValueWord16$fFormValueWord8$fFormValueWord$fFormValueInteger$fFormValueInt64$fFormValueInt32$fFormValueInt16$fFormValueInt8$fFormValueInt$fFormValueByteString$fFormValueByteString0 $fFormValue[]$fFormValueBuilder$fFormValueText$fFormValueText0$fPutableEncoding'$fPutableValue$fPutableByteString$fPutableByteString0$fPutablePayload$fPutableFormParam $fPutable[] $fPutable(,) $fPutable[]0 $fPutable[]1$fPutablePartM$fPatchableEncoding'$fPatchableValue$fPatchableByteString$fPatchableByteString0$fPatchablePayload$fPatchableFormParam $fPatchable[]$fPatchable(,)$fPatchable[]0$fPatchable[]1$fPatchablePartM$fPostableEncoding'$fPostableValue$fPostableByteString$fPostableByteString0$fPostablePayload$fPostableFormParam $fPostable[] $fPostable(,) $fPostable[]0 $fPostable[]1$fPostablePartMheaderparamcookie cookieName cookieValuecookieExpiryTime cookieDomain cookiePathcookieCreationTimecookieLastAccessTimecookiePersistentcookieHostOnlycookieSecureOnlycookieHttpOnly proxyHost proxyPortresponseStatusresponseVersionresponseHeaderresponseHeaders responseLink responseBodyresponseCookieresponseCookieJarhrFinalRequesthrFinalResponse hrRedirects statusCode statusMessagepartName partFileNamepartContentType partGetBodyattoatto_ cacheStore validateEntry shouldCache$fHashableCacheResponse$fEqCacheResponse$fShowCacheResponse$fFunctorCacheResponse$fGenericCacheResponsepatch patchWithcustomHistoriedMethodcustomPayloadMethodcustomHistoriedPayloadMethodfoldGet foldGetWith oauth1Auth oauth2Bearer oauth2TokenawsAuthawsSessionTokenAuth awsFullAuthpartText partString withSession newSessionwithAPISession newAPISessionwithSessionWithwithSessionControlnewSessionControlgetSessionCookieJar signRequestbaseGHC.BaseString text-1.2.5.0Data.Text.Internal GHC.MaybeMaybeNothingManagerManagerSettingsRequestBodyNoBody StringBody ReaderBody CacheEntry entryCreated entryExpires entryResponse seshCookies seshManagerseshRunHistory RunHistoryMgr fieldName makeLenses toCamelCase setHeadermaybeSetHeader cookieJar decompresshost hostAddressmethodonRequestBodyExceptionpathport queryStringrawBody redirectCount requestBodyrequestHeadersrequestManagerOverriderequestVersionresponseTimeoutsecureassocassoc2 deleteKeysignRequestFulllinksPartMresponseClose' partFilename partHeaders!lens-5.2.2-7fMhTmpX9jcKZj7Hhz7WWBControl.Lens.Type Traversal''attoparsec-0.14.4-lyXqbN1vsBKpeQfeAL0lt#Data.Attoparsec.ByteString.InternalParserFold<*Data.Attoparsec.Internal endOfInputversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDiremptyMethodWithignoreResponse readResponsefoldResponseBodyrequest prepareGetrunReadrunReadHistory preparePost prepareMethodpreparePayloadMethod prepareHead runIgnoreprepareOptions preparePut preparePatch prepareDelete Data.FunctionControl.Lens.Setter$aeson-2.1.2.1-HxqWYVrLN48IB6S2r9ccPmData.Aeson.Types.ToJSONtoJSONData.Aeson.Types.FromJSONFromJSON Data.EitherEitherLeftRight