http-conduit-2.3.9.1: HTTP client package with conduit interface and HTTPS support.
Safe HaskellNone
LanguageHaskell2010

Network.HTTP.Client.Conduit

Description

A new, experimental API to replace Network.HTTP.Conduit.

For most users, Network.HTTP.Simple is probably a better choice. For more information, see:

https://haskell-lang.org/library/http-client

For more information on using this module, please be sure to read the documentation in the Network.HTTP.Client module.

Synopsis

Conduit-specific interface

withResponse :: forall m (n :: Type -> Type) env i a. (MonadUnliftIO m, MonadIO n, MonadReader env m, HasHttpManager env) => Request -> (Response (ConduitM i ByteString n ()) -> m a) -> m a Source #

Conduit powered version of withResponse. Differences are:

  • Response body is represented as a Producer.
  • Generalized to any instance of MonadUnliftIO, not just IO.
  • The Manager is contained by a MonadReader context.

Since 2.1.0

responseOpen :: forall m (n :: Type -> Type) env i. (MonadIO m, MonadIO n, MonadReader env m, HasHttpManager env) => Request -> m (Response (ConduitM i ByteString n ())) Source #

Conduit-powered version of responseOpen.

See withResponse for the differences with responseOpen.

Since 2.1.0

responseClose :: MonadIO m => Response body -> m () Source #

Generalized version of responseClose.

Since 2.1.0

acquireResponse :: forall (n :: Type -> Type) env m i. (MonadIO n, MonadReader env m, HasHttpManager env) => Request -> m (Acquire (Response (ConduitM i ByteString n ()))) Source #

An Acquire for getting a Response.

Since 2.1.0

httpSource :: forall (m :: Type -> Type) (n :: Type -> Type) env r. (MonadResource m, MonadIO n, MonadReader env m, HasHttpManager env) => Request -> (Response (ConduitM () ByteString n ()) -> ConduitM () r m ()) -> ConduitM () r m () Source #

Same as httpSource, but uses Manager from Reader environment instead of the global one.

Since 2.3.6

Manager helpers

defaultManagerSettings :: ManagerSettings Source #

TLS-powered manager settings.

Since 2.1.0

newManager :: MonadIO m => m Manager Source #

Get a new manager using defaultManagerSettings.

Since 2.1.0

newManagerSettings :: MonadIO m => ManagerSettings -> m Manager Source #

Get a new manager using the given settings.

Since 2.1.0

General HTTP client interface

data Proxy #

Constructors

Proxy 

Fields

Instances

Instances details
Read Proxy 
Instance details

Defined in Network.HTTP.Client.Types

Methods

readsPrec :: Int -> ReadS Proxy

readList :: ReadS [Proxy]

readPrec :: ReadPrec Proxy

readListPrec :: ReadPrec [Proxy]

Show Proxy 
Instance details

Defined in Network.HTTP.Client.Types

Methods

showsPrec :: Int -> Proxy -> ShowS

show :: Proxy -> String

showList :: [Proxy] -> ShowS

Eq Proxy 
Instance details

Defined in Network.HTTP.Client.Types

Methods

(==) :: Proxy -> Proxy -> Bool

(/=) :: Proxy -> Proxy -> Bool

Ord Proxy 
Instance details

Defined in Network.HTTP.Client.Types

Methods

compare :: Proxy -> Proxy -> Ordering

(<) :: Proxy -> Proxy -> Bool

(<=) :: Proxy -> Proxy -> Bool

(>) :: Proxy -> Proxy -> Bool

(>=) :: Proxy -> Proxy -> Bool

max :: Proxy -> Proxy -> Proxy

min :: Proxy -> Proxy -> Proxy

data RequestBody #

Instances

Instances details
Monoid RequestBody 
Instance details

Defined in Network.HTTP.Client.Types

Semigroup RequestBody 
Instance details

Defined in Network.HTTP.Client.Types

Methods

(<>) :: RequestBody -> RequestBody -> RequestBody

sconcat :: NonEmpty RequestBody -> RequestBody

stimes :: Integral b => b -> RequestBody -> RequestBody

IsString RequestBody 
Instance details

Defined in Network.HTTP.Client.Types

Methods

fromString :: String -> RequestBody

data Request #

Instances

Instances details
Show Request 
Instance details

Defined in Network.HTTP.Client.Types

Methods

showsPrec :: Int -> Request -> ShowS

show :: Request -> String

showList :: [Request] -> ShowS

setQueryString :: [(ByteString, Maybe ByteString)] -> Request -> Request #

data Response body #

Instances

Instances details
Functor Response 
Instance details

Defined in Network.HTTP.Client.Types

Methods

fmap :: (a -> b) -> Response a -> Response b

(<$) :: a -> Response b -> Response a

Foldable Response 
Instance details

Defined in Network.HTTP.Client.Types

Methods

fold :: Monoid m => Response m -> m

foldMap :: Monoid m => (a -> m) -> Response a -> m

foldMap' :: Monoid m => (a -> m) -> Response a -> m

foldr :: (a -> b -> b) -> b -> Response a -> b

foldr' :: (a -> b -> b) -> b -> Response a -> b

foldl :: (b -> a -> b) -> b -> Response a -> b

foldl' :: (b -> a -> b) -> b -> Response a -> b

foldr1 :: (a -> a -> a) -> Response a -> a

foldl1 :: (a -> a -> a) -> Response a -> a

toList :: Response a -> [a]

null :: Response a -> Bool

length :: Response a -> Int

elem :: Eq a => a -> Response a -> Bool

maximum :: Ord a => Response a -> a

minimum :: Ord a => Response a -> a

sum :: Num a => Response a -> a

product :: Num a => Response a -> a

Traversable Response 
Instance details

Defined in Network.HTTP.Client.Types

Methods

traverse :: Applicative f => (a -> f b) -> Response a -> f (Response b)

sequenceA :: Applicative f => Response (f a) -> f (Response a)

mapM :: Monad m => (a -> m b) -> Response a -> m (Response b)

sequence :: Monad m => Response (m a) -> m (Response a)

Show body => Show (Response body) 
Instance details

Defined in Network.HTTP.Client.Types

Methods

showsPrec :: Int -> Response body -> ShowS

show :: Response body -> String

showList :: [Response body] -> ShowS

data Manager #

Instances

Instances details
HasHttpManager Manager 
Instance details

Defined in Network.HTTP.Client.Types

data ResponseTimeout #

Instances

Instances details
Show ResponseTimeout 
Instance details

Defined in Network.HTTP.Client.Types

Methods

showsPrec :: Int -> ResponseTimeout -> ShowS

show :: ResponseTimeout -> String

showList :: [ResponseTimeout] -> ShowS

Eq ResponseTimeout 
Instance details

Defined in Network.HTTP.Client.Types

data Cookie #

Constructors

Cookie 

Fields

Instances

Instances details
Read Cookie 
Instance details

Defined in Network.HTTP.Client.Types

Methods

readsPrec :: Int -> ReadS Cookie

readList :: ReadS [Cookie]

readPrec :: ReadPrec Cookie

readListPrec :: ReadPrec [Cookie]

Show Cookie 
Instance details

Defined in Network.HTTP.Client.Types

Methods

showsPrec :: Int -> Cookie -> ShowS

show :: Cookie -> String

showList :: [Cookie] -> ShowS

data CookieJar #

Instances

Instances details
Monoid CookieJar 
Instance details

Defined in Network.HTTP.Client.Types

Semigroup CookieJar 
Instance details

Defined in Network.HTTP.Client.Types

Methods

(<>) :: CookieJar -> CookieJar -> CookieJar

sconcat :: NonEmpty CookieJar -> CookieJar

stimes :: Integral b => b -> CookieJar -> CookieJar

Read CookieJar 
Instance details

Defined in Network.HTTP.Client.Types

Methods

readsPrec :: Int -> ReadS CookieJar

readList :: ReadS [CookieJar]

readPrec :: ReadPrec CookieJar

readListPrec :: ReadPrec [CookieJar]

Show CookieJar 
Instance details

Defined in Network.HTTP.Client.Types

Methods

showsPrec :: Int -> CookieJar -> ShowS

show :: CookieJar -> String

showList :: [CookieJar] -> ShowS

parseUrl :: MonadThrow m => String -> m Request #

parseUrlThrow :: MonadThrow m => String -> m Request #

parseRequest :: MonadThrow m => String -> m Request #

parseRequest_ :: String -> Request #

applyBasicAuth :: ByteString -> ByteString -> Request -> Request #

urlEncodedBody :: [(ByteString, ByteString)] -> Request -> Request #

data HttpException #

Instances

Instances details
Exception HttpException 
Instance details

Defined in Network.HTTP.Client.Types

Methods

toException :: HttpException -> SomeException

fromException :: SomeException -> Maybe HttpException

displayException :: HttpException -> String

backtraceDesired :: HttpException -> Bool

Show HttpException 
Instance details

Defined in Network.HTTP.Client.Types

Methods

showsPrec :: Int -> HttpException -> ShowS

show :: HttpException -> String

showList :: [HttpException] -> ShowS

class HasHttpManager a where #

Methods

getHttpManager :: a -> Manager #

Instances

Instances details
HasHttpManager Manager 
Instance details

Defined in Network.HTTP.Client.Types

type GivesPopper a = NeedsPopper a -> IO a #

brReadSome :: BodyReader -> Int -> IO ByteString #

makeConnection :: IO ByteString -> (ByteString -> IO ()) -> IO () -> IO Connection #

socketConnection :: Socket -> Int -> IO Connection #

strippedHostName :: String -> String #

computeCookieString :: Request -> CookieJar -> UTCTime -> Bool -> (ByteString, CookieJar) #

defaultPath :: Request -> ByteString #

domainMatches :: ByteString -> ByteString -> Bool #

generateCookie :: SetCookie -> Request -> UTCTime -> Bool -> Maybe Cookie #

isIpAddress :: ByteString -> Bool #

isPotentiallyTrustworthyOrigin :: Bool -> ByteString -> Bool #

pathMatches :: ByteString -> ByteString -> Bool #

receiveSetCookie :: SetCookie -> Request -> UTCTime -> Bool -> CookieJar -> CookieJar #

withConnection :: Request -> Manager -> (Connection -> IO a) -> IO a #

rawConnectionModifySocket :: (Socket -> IO ()) -> IO (Maybe HostAddress -> String -> Int -> IO Connection) #

rawConnectionModifySocketSize :: (Socket -> IO ()) -> IO (Int -> Maybe HostAddress -> String -> Int -> IO Connection) #

withManager :: ManagerSettings -> (Manager -> IO a) -> IO a #

applyBasicProxyAuth :: ByteString -> ByteString -> Request -> Request #

applyBearerAuth :: ByteString -> Request -> Request #

getUri :: Request -> URI #

observedStreamFile :: (StreamFileStatus -> IO ()) -> FilePath -> IO RequestBody #

requestFromURI :: MonadThrow m => URI -> m Request #

setQueryStringPartialEscape :: [(ByteString, [EscapeItem])] -> Request -> Request #

streamFile :: FilePath -> IO RequestBody #

throwErrorStatusCodes :: MonadIO m => Request -> Response BodyReader -> m () #

type NeedsPopper a = Popper -> IO a #

type Popper = IO ByteString #

compareCookies :: Cookie -> Cookie -> Ordering #

equalCookie :: Cookie -> Cookie -> Bool #

equivCookie :: Cookie -> Cookie -> Bool #

data HistoriedResponse body #

Instances

Instances details
Functor HistoriedResponse 
Instance details

Defined in Network.HTTP.Client

Foldable HistoriedResponse 
Instance details

Defined in Network.HTTP.Client

Methods

fold :: Monoid m => HistoriedResponse m -> m

foldMap :: Monoid m => (a -> m) -> HistoriedResponse a -> m

foldMap' :: Monoid m => (a -> m) -> HistoriedResponse a -> m

foldr :: (a -> b -> b) -> b -> HistoriedResponse a -> b

foldr' :: (a -> b -> b) -> b -> HistoriedResponse a -> b

foldl :: (b -> a -> b) -> b -> HistoriedResponse a -> b

foldl' :: (b -> a -> b) -> b -> HistoriedResponse a -> b

foldr1 :: (a -> a -> a) -> HistoriedResponse a -> a

foldl1 :: (a -> a -> a) -> HistoriedResponse a -> a

toList :: HistoriedResponse a -> [a]

null :: HistoriedResponse a -> Bool

length :: HistoriedResponse a -> Int

elem :: Eq a => a -> HistoriedResponse a -> Bool

maximum :: Ord a => HistoriedResponse a -> a

minimum :: Ord a => HistoriedResponse a -> a

sum :: Num a => HistoriedResponse a -> a

product :: Num a => HistoriedResponse a -> a

Traversable HistoriedResponse 
Instance details

Defined in Network.HTTP.Client

Methods

traverse :: Applicative f => (a -> f b) -> HistoriedResponse a -> f (HistoriedResponse b)

sequenceA :: Applicative f => HistoriedResponse (f a) -> f (HistoriedResponse a)

mapM :: Monad m => (a -> m b) -> HistoriedResponse a -> m (HistoriedResponse b)

sequence :: Monad m => HistoriedResponse (m a) -> m (HistoriedResponse a)

Generic (HistoriedResponse body) 
Instance details

Defined in Network.HTTP.Client

Associated Types

type Rep (HistoriedResponse body) 
Instance details

Defined in Network.HTTP.Client

type Rep (HistoriedResponse body) = D1 ('MetaData "HistoriedResponse" "Network.HTTP.Client" "http-client-0.7.17-7vT5mNUns8xofFfqWgL2k" 'False) (C1 ('MetaCons "HistoriedResponse" 'PrefixI 'True) (S1 ('MetaSel ('Just "hrRedirects") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Request, Response ByteString)]) :*: (S1 ('MetaSel ('Just "hrFinalRequest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Request) :*: S1 ('MetaSel ('Just "hrFinalResponse") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Response body)))))

Methods

from :: HistoriedResponse body -> Rep (HistoriedResponse body) x

to :: Rep (HistoriedResponse body) x -> HistoriedResponse body

Show body => Show (HistoriedResponse body) 
Instance details

Defined in Network.HTTP.Client

Methods

showsPrec :: Int -> HistoriedResponse body -> ShowS

show :: HistoriedResponse body -> String

showList :: [HistoriedResponse body] -> ShowS

type Rep (HistoriedResponse body) 
Instance details

Defined in Network.HTTP.Client

type Rep (HistoriedResponse body) = D1 ('MetaData "HistoriedResponse" "Network.HTTP.Client" "http-client-0.7.17-7vT5mNUns8xofFfqWgL2k" 'False) (C1 ('MetaCons "HistoriedResponse" 'PrefixI 'True) (S1 ('MetaSel ('Just "hrRedirects") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Request, Response ByteString)]) :*: (S1 ('MetaSel ('Just "hrFinalRequest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Request) :*: S1 ('MetaSel ('Just "hrFinalResponse") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Response body)))))

withResponseHistory :: Request -> Manager -> (HistoriedResponse BodyReader -> IO a) -> IO a #

httpLbs :: (MonadIO m, HasHttpManager env, MonadReader env m) => Request -> m (Response ByteString) Source #

Same as httpLbs, except it uses the Manager in the reader environment.

Since 2.1.1

httpNoBody :: (MonadIO m, HasHttpManager env, MonadReader env m) => Request -> m (Response ()) Source #

Same as httpNoBody, except it uses the Manager in the reader environment.

This can be more convenient that using withManager as it avoids the need to specify the base monad for the response body.

Since 2.1.2

Lower-level conduit functions

requestBodySource :: Int64 -> ConduitM () ByteString IO () -> RequestBody Source #

requestBodySourceChunked :: ConduitM () ByteString IO () -> RequestBody Source #

bodyReaderSource :: forall (m :: Type -> Type) i. MonadIO m => BodyReader -> ConduitM i ByteString m () Source #