Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data HTTPClient
- initHTTPClient :: MonadIO m => ManagerSettings -> Initializer m exts (HTTPClient : exts)
- getManager :: (Has HTTPClient es, MonadExts es m, MonadIO m) => m Manager
- withHTTPClient :: (Has HTTPClient es, MonadExts es m, MonadIO m) => (Request -> Manager -> IO a) -> Request -> m a
- fromWaiRequest :: ([Text] -> [Text]) -> ([Header] -> [Header]) -> Request -> Request
- fromRequest :: (Has HTTPClient exts, MonadIO m) => ([Text] -> [Text]) -> ([Header] -> [Header]) -> ActionT exts prms m Request
- resetHeaders :: [Header] -> [Header]
- setPort :: Int -> Request -> Request
- setHost :: ByteString -> Request -> Request
- setHostName :: ByteString -> Request -> Request
- setHostHeader :: ByteString -> Request -> Request
- sendRequset :: (Has HTTPClient exts, MonadIO m) => Request -> ActionT exts prms m (Response ByteString)
- openRequset :: (Has HTTPClient exts, MonadIO m) => Request -> ActionT exts prms m (Response BodyReader)
- sendRequsetNoBody :: (Has HTTPClient exts, MonadIO m) => Request -> ActionT exts prms m (Response ())
- proxyTo :: (Has HTTPClient exts, MonadIO m) => Request -> ActionT exts prms m ()
- proxyWith :: (Has HTTPClient exts, MonadIO m) => Request -> (Response ByteString -> Response ByteString) -> ActionT exts prms m ()
- module Network.HTTP.Client
Documentation
initHTTPClient :: MonadIO m => ManagerSettings -> Initializer m exts (HTTPClient : exts) Source
Initialize a MonadExts
with Network.HTTP.Client.ManagerSettings
.
getManager :: (Has HTTPClient es, MonadExts es m, MonadIO m) => m Manager Source
Get Network.HTTP.Client.Manage
from Apiary's MonadExts
context.
withHTTPClient :: (Has HTTPClient es, MonadExts es m, MonadIO m) => (Request -> Manager -> IO a) -> Request -> m a Source
lift operations with initial manager.
helpers to make new Request
:: ([Text] -> [Text]) | Function to modify request path |
-> ([Header] -> [Header]) | Function to modify request headers |
-> Request | |
-> Request | From |
Copy path, headers, body and queryString from Network.Wai.Request
:: (Has HTTPClient exts, MonadIO m) | |
=> ([Text] -> [Text]) | Function to modify request path |
-> ([Header] -> [Header]) | Function to modify request headers |
-> ActionT exts prms m Request |
Copy path, headers, body and queryString from current ActionT
's context.
resetHeaders :: [Header] -> [Header] Source
Remove following headers: Transfer-Encoding, Content-Length, Content-Encoding and Accept-Encoding. It's very likely you want to do this.
setHost :: ByteString -> Request -> Request Source
setHostName :: ByteString -> Request -> Request Source
setHostHeader :: ByteString -> Request -> Request Source
send request and get respond
sendRequset :: (Has HTTPClient exts, MonadIO m) => Request -> ActionT exts prms m (Response ByteString) Source
send requset and get Response
ByteString
For large response consider using openRequset
and responseClose
instead.
openRequset :: (Has HTTPClient exts, MonadIO m) => Request -> ActionT exts prms m (Response BodyReader) Source
send request and get Response
BodyReader
send request for side effect
sendRequsetNoBody :: (Has HTTPClient exts, MonadIO m) => Request -> ActionT exts prms m (Response ()) Source
send request without receive any body.
send request and proxy respond
proxyTo :: (Has HTTPClient exts, MonadIO m) => Request -> ActionT exts prms m () Source
streamming response directly from proxy target.
:: (Has HTTPClient exts, MonadIO m) | |
=> Request | |
-> (Response ByteString -> Response ByteString) | Function to modify response. |
-> ActionT exts prms m () |
Modify response from proxy target then send. You should consider remove following headers: Transfer-Encoding, Content-Length, Content-Encoding and Accept-Encoding.
module Network.HTTP.Client