http-client-effectful
Safe HaskellNone
LanguageGHC2021

Effectful.HTTP.Client.Static

Synopsis

Effect

data Network (a :: Type -> Type) b Source #

Static network effect.

Since: 0.1

Instances

Instances details
type DispatchOf Network Source #

Since: 0.1

Instance details

Defined in Effectful.HTTP.Client.Static

data StaticRep Network Source #

Since: 0.1

Instance details

Defined in Effectful.HTTP.Client.Static

Handlers

runNetwork Source #

Arguments

:: forall a (es :: [Effect]). (HasCallStack, IOE :> es) 
=> Eff (Network ': es) a

.

-> Eff es a 

Runs Network in IOE.

Since: 0.1

Manager

newManager Source #

Arguments

:: forall (es :: [Effect]). (HasCallStack, Network :> es) 
=> ManagerSettings

.

-> Eff es Manager 

Since: 0.1

TLS

newTlsManager Source #

Arguments

:: forall (es :: [Effect]). (HasCallStack, Network :> es) 
=> Eff es Manager

.

Since: 0.1

newTlsManagerWith Source #

Arguments

:: forall (es :: [Effect]). (HasCallStack, Network :> es) 
=> ManagerSettings

.

-> Eff es Manager 

Since: 0.1

applyDigestAuth Source #

Arguments

:: forall n (es :: [Effect]). (HasCallStack, MonadThrow n, Network :> es) 
=> ByteString

.

-> ByteString 
-> Request 
-> Manager 
-> Eff es (n Request) 

Since: 0.1

Queries

type BodyReader (m :: Type -> k) = m ByteString Source #

Since: 0.1

withResponse Source #

Arguments

:: forall a (es :: [Effect]). (HasCallStack, Network :> es) 
=> Request

.

-> Manager 
-> (Response (BodyReader (Eff es)) -> Eff es a) 
-> Eff es a 

Since: 0.1

withResponseHistory Source #

Arguments

:: forall a (es :: [Effect]). (HasCallStack, Network :> es) 
=> Request

.

-> Manager 
-> (HistoriedResponse (BodyReader (Eff es)) -> Eff es a) 
-> Eff es a 

Since: 0.1

Consumers

brRead Source #

Arguments

:: forall (es :: [Effect]). (HasCallStack, Network :> es) 
=> BodyReader (Eff es)

.

-> Eff es ByteString 

Since: 0.1

brReadSome Source #

Arguments

:: forall (es :: [Effect]). (HasCallStack, Network :> es) 
=> BodyReader (Eff es)

.

-> Int 
-> Eff es LazyByteString 

Since: 0.1

brConsume Source #

Arguments

:: forall (es :: [Effect]). (HasCallStack, Network :> es) 
=> BodyReader (Eff es)

.

-> Eff es [ByteString] 

Since: 0.1

Helpers

readResponseJson Source #

Arguments

:: forall a (es :: [Effect]). (FromJSON a, HasCallStack, Network :> es) 
=> String

String url.

-> Response (BodyReader (Eff es))

Response.

-> Eff es a 

Helper for reading a response, decoding JSON.

readResponseUtf8 Source #

Arguments

:: forall (es :: [Effect]). (HasCallStack, Network :> es) 
=> String

String url.

-> Response (BodyReader (Eff es))

Response.

-> Eff es Text 

Helper for reading a response, decoding to UTF-8.

Since: 0.1

readResponse Source #

Arguments

:: forall a (es :: [Effect]). (HasCallStack, Network :> es) 
=> String

String url.

-> Response (BodyReader (Eff es))

Response.

-> (BodyReader (Eff es) -> Eff es a)

Consumer.

-> Eff es a 

Helper for reading a response, checking for status 200 and exceptions thrown by the consumer.

Since: 0.1

Exceptions

Re-exports

data ManagerSettings Source #

Settings for a Manager. Please use the defaultManagerSettings function and then modify individual settings. For more information, see http://www.yesodweb.com/book/settings-types.

Since 0.1.0

data Manager Source #

Keeps track of open connections for keep-alive.

If possible, you should share a single Manager between multiple threads and requests.

Since 0.1.0

Instances

Instances details
HasHttpManager Manager Source # 
Instance details

Defined in Network.HTTP.Client.Types

data Request Source #

All information on how to connect to a host and what should be sent in the HTTP request.

If you simply wish to download from a URL, see parseRequest.

The constructor for this data type is not exposed. Instead, you should use either the defaultRequest value, or parseRequest to construct from a URL, and then use the records below to make modifications. This approach allows http-client to add configuration options without breaking backwards compatibility.

For example, to construct a POST request, you could do something like:

initReq <- parseRequest "http://www.example.com/path"
let req = initReq
            { method = "POST"
            }

For more information, please see http://www.yesodweb.com/book/settings-types.

Since 0.1.0

Instances

Instances details
IsString Request Source #

Parses a URL via parseRequest_

NOTE: Prior to version 0.5.0, this instance used parseUrlThrow instead.

Instance details

Defined in Network.HTTP.Client.Request

Methods

fromString :: String -> Request #

Show Request Source # 
Instance details

Defined in Network.HTTP.Client.Types

data Response body Source #

A simple representation of the HTTP response.

Since 0.1.0

Instances

Instances details
Functor Response Source # 
Instance details

Defined in Network.HTTP.Client.Types

Methods

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

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

Foldable Response Source # 
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 Source # 
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) Source # 
Instance details

Defined in Network.HTTP.Client.Types

Methods

showsPrec :: Int -> Response body -> ShowS #

show :: Response body -> String #

showList :: [Response body] -> ShowS #