Copyright | (c) 2014 Bryan O'Sullivan |
---|---|
License | BSD-style |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | None |
Language | Haskell98 |
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.
- data Session
- withSession :: (Session -> IO a) -> IO a
- withSessionWith :: ManagerSettings -> (Session -> IO a) -> IO a
- get :: Session -> String -> IO (Response ByteString)
- post :: Postable a => Session -> String -> a -> IO (Response ByteString)
- head_ :: Session -> String -> IO (Response ())
- options :: Session -> String -> IO (Response ())
- put :: Putable a => Session -> String -> a -> IO (Response ByteString)
- delete :: Session -> String -> IO (Response ByteString)
- getWith :: Options -> Session -> String -> IO (Response ByteString)
- postWith :: Postable a => Options -> Session -> String -> a -> IO (Response ByteString)
- headWith :: Options -> Session -> String -> IO (Response ())
- optionsWith :: Options -> Session -> String -> IO (Response ())
- putWith :: Putable a => Options -> Session -> String -> a -> IO (Response ByteString)
- deleteWith :: Options -> Session -> String -> IO (Response ByteString)
- seshRun :: Lens' Session (Session -> Run Body -> Run Body)
Documentation
A session that spans multiple requests. This is responsible for cookie management and TCP connection reuse.
withSession :: (Session -> IO a) -> IO a Source
withSessionWith :: ManagerSettings -> (Session -> IO a) -> IO a Source
Create a session, using the given manager settings.
HTTP verbs
Configurable verbs
optionsWith :: Options -> Session -> String -> IO (Response ()) Source
Session
-specific version of optionsWith
.
deleteWith :: Options -> Session -> String -> IO (Response ByteString) Source
Session
-specific version of deleteWith
.