wreq-0.3.0.1: An easy-to-use HTTP client library.

Copyright(c) 2014 Bryan O'Sullivan
LicenseBSD-style
Maintainerbos@serpentine.com
Stabilityexperimental
PortabilityGHC
Safe HaskellNone
LanguageHaskell98

Network.Wreq.Session

Contents

Description

The functions in this module use a Session to handle the following common needs:

  • TCP connection reuse. This is important for performance when multiple requests go to a single server, particularly if TLS is being used.
  • Transparent cookie management. Any cookies set by the server persist from one request to the next.

This module is designed to be used alongside the Network.Wreq module. Typical usage will look like this:

import Network.Wreq
import qualified Network.Wreq.Session as Sess

main = Sess.withSession $ \sess ->
  Sess.get sess "http://httpbin.org/get"

We create a Session using withSession, then pass the session to subsequent functions.

Note the use of a qualified import statement, so that we can refer unambiguously to the Session-specific implementation of HTTP GET.

Synopsis

Documentation

data Session

A session that spans multiple requests. This is responsible for cookie management and TCP connection reuse.

Instances

withSession :: (Session -> IO a) -> IO a

Create a Session, passing it to the given function. The Session will no longer be valid after that function returns.

withSessionWith :: ManagerSettings -> (Session -> IO a) -> IO a

Create a session, using the given manager settings.

HTTP verbs

get :: Session -> String -> IO (Response ByteString)

Session-specific version of get.

post :: Postable a => Session -> String -> a -> IO (Response ByteString)

Session-specific version of post.

head_ :: Session -> String -> IO (Response ())

Session-specific version of head_.

options :: Session -> String -> IO (Response ())

Session-specific version of options.

put :: Putable a => Session -> String -> a -> IO (Response ByteString)

Session-specific version of put.

delete :: Session -> String -> IO (Response ByteString)

Session-specific version of delete.

Configurable verbs

getWith :: Options -> Session -> String -> IO (Response ByteString)

Session-specific version of getWith.

postWith :: Postable a => Options -> Session -> String -> a -> IO (Response ByteString)

Session-specific version of postWith.

headWith :: Options -> Session -> String -> IO (Response ())

Session-specific version of headWith.

optionsWith :: Options -> Session -> String -> IO (Response ())

Session-specific version of optionsWith.

putWith :: Putable a => Options -> Session -> String -> a -> IO (Response ByteString)

Session-specific version of putWith.

Extending a session

seshRun :: Lens' Session (Session -> Run Body -> Run Body)