Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
GI.Soup.Objects.Message
Contents
- Exported types
- Methods
- contentSniffed
- disableFeature
- finished
- getAddress
- getFirstParty
- getFlags
- getHttpVersion
- getHttpsStatus
- getPriority
- getSoupRequest
- getUri
- gotBody
- gotChunk
- gotHeaders
- gotInformational
- isKeepalive
- new
- newFromUri
- restarted
- setChunkAllocator
- setFirstParty
- setFlags
- setHttpVersion
- setPriority
- setRedirect
- setRequest
- setResponse
- setStatus
- setStatusFull
- setUri
- starting
- wroteBody
- wroteBodyData
- wroteChunk
- wroteHeaders
- wroteInformational
- Properties
- Signals
Description
Represents an HTTP message being sent or received.
statusCode
will normally be a Status
value, eg,
StatusOk
, though of course it might actually be an unknown
status code. reasonPhrase
is the actual text returned from the
server, which may or may not correspond to the "standard"
description of statusCode
. At any rate, it is almost certainly
not localized, and not very descriptive even if it is in the user's
language; you should not use reasonPhrase
in user-visible
messages. Rather, you should look at statusCode
, and determine an
end-user-appropriate message based on that and on what you were
trying to do.
As described in the MessageBody
documentation, the
requestBody
and responseBody
<literal>data</literal> fields
will not necessarily be filled in at all times. When the body
fields are filled in, they will be terminated with a '\0' byte
(which is not included in the <literal>length</literal>), so you
can use them as ordinary C strings (assuming that you know that the
body doesn't have any other '\0' bytes).
For a client-side Message
, requestBody
's
<literal>data</literal> is usually filled in right before libsoup
writes the request to the network, but you should not count on
this; use messageBodyFlatten
if you want to ensure that
<literal>data</literal> is filled in. If you are not using
Request
to read the response, then responseBody
's
<literal>data</literal> will be filled in before
Message
::finished
is emitted. (If you are using Request
,
then the message body is not accumulated by default, so
responseBody
's <literal>data</literal> will always be Nothing
.)
For a server-side Message
, requestBody
's data
will be
filled in before Message
::got_body
is emitted.
To prevent the data
field from being filled in at all (eg, if you
are handling the data from a Message
::got_chunk
, and so don't
need to see it all at the end), call
messageBodySetAccumulate
on responseBody
or
requestBody
as appropriate, passing False
.
- newtype Message = Message (ManagedPtr Message)
- class GObject o => IsMessage o
- toMessage :: (MonadIO m, IsMessage o) => o -> m Message
- noMessage :: Maybe Message
- messageContentSniffed :: (HasCallStack, MonadIO m, IsMessage a) => a -> Text -> Map (Ptr ()) (Ptr ()) -> m ()
- messageDisableFeature :: (HasCallStack, MonadIO m, IsMessage a) => a -> GType -> m ()
- messageFinished :: (HasCallStack, MonadIO m, IsMessage a) => a -> m ()
- messageGetAddress :: (HasCallStack, MonadIO m, IsMessage a) => a -> m Address
- messageGetFirstParty :: (HasCallStack, MonadIO m, IsMessage a) => a -> m URI
- messageGetFlags :: (HasCallStack, MonadIO m, IsMessage a) => a -> m [MessageFlags]
- messageGetHttpVersion :: (HasCallStack, MonadIO m, IsMessage a) => a -> m HTTPVersion
- messageGetHttpsStatus :: (HasCallStack, MonadIO m, IsMessage a) => a -> m (Bool, TlsCertificate, [TlsCertificateFlags])
- messageGetPriority :: (HasCallStack, MonadIO m, IsMessage a) => a -> m MessagePriority
- messageGetSoupRequest :: (HasCallStack, MonadIO m, IsMessage a) => a -> m Request
- messageGetUri :: (HasCallStack, MonadIO m, IsMessage a) => a -> m URI
- messageGotBody :: (HasCallStack, MonadIO m, IsMessage a) => a -> m ()
- messageGotChunk :: (HasCallStack, MonadIO m, IsMessage a) => a -> Buffer -> m ()
- messageGotHeaders :: (HasCallStack, MonadIO m, IsMessage a) => a -> m ()
- messageGotInformational :: (HasCallStack, MonadIO m, IsMessage a) => a -> m ()
- messageIsKeepalive :: (HasCallStack, MonadIO m, IsMessage a) => a -> m Bool
- messageNew :: (HasCallStack, MonadIO m) => Text -> Text -> m (Maybe Message)
- messageNewFromUri :: (HasCallStack, MonadIO m) => Text -> URI -> m Message
- messageRestarted :: (HasCallStack, MonadIO m, IsMessage a) => a -> m ()
- messageSetChunkAllocator :: (HasCallStack, MonadIO m, IsMessage a) => a -> ChunkAllocator -> m ()
- messageSetFirstParty :: (HasCallStack, MonadIO m, IsMessage a) => a -> URI -> m ()
- messageSetFlags :: (HasCallStack, MonadIO m, IsMessage a) => a -> [MessageFlags] -> m ()
- messageSetHttpVersion :: (HasCallStack, MonadIO m, IsMessage a) => a -> HTTPVersion -> m ()
- messageSetPriority :: (HasCallStack, MonadIO m, IsMessage a) => a -> MessagePriority -> m ()
- messageSetRedirect :: (HasCallStack, MonadIO m, IsMessage a) => a -> Word32 -> Text -> m ()
- messageSetRequest :: (HasCallStack, MonadIO m, IsMessage a) => a -> Maybe Text -> MemoryUse -> Maybe ByteString -> m ()
- messageSetResponse :: (HasCallStack, MonadIO m, IsMessage a) => a -> Maybe Text -> MemoryUse -> Maybe ByteString -> m ()
- messageSetStatus :: (HasCallStack, MonadIO m, IsMessage a) => a -> Word32 -> m ()
- messageSetStatusFull :: (HasCallStack, MonadIO m, IsMessage a) => a -> Word32 -> Text -> m ()
- messageSetUri :: (HasCallStack, MonadIO m, IsMessage a) => a -> URI -> m ()
- messageStarting :: (HasCallStack, MonadIO m, IsMessage a) => a -> m ()
- messageWroteBody :: (HasCallStack, MonadIO m, IsMessage a) => a -> m ()
- messageWroteBodyData :: (HasCallStack, MonadIO m, IsMessage a) => a -> Buffer -> m ()
- messageWroteChunk :: (HasCallStack, MonadIO m, IsMessage a) => a -> m ()
- messageWroteHeaders :: (HasCallStack, MonadIO m, IsMessage a) => a -> m ()
- messageWroteInformational :: (HasCallStack, MonadIO m, IsMessage a) => a -> m ()
- constructMessageFirstParty :: IsMessage o => URI -> IO (GValueConstruct o)
- getMessageFirstParty :: (MonadIO m, IsMessage o) => o -> m URI
- setMessageFirstParty :: (MonadIO m, IsMessage o) => o -> URI -> m ()
- constructMessageFlags :: IsMessage o => [MessageFlags] -> IO (GValueConstruct o)
- getMessageFlags :: (MonadIO m, IsMessage o) => o -> m [MessageFlags]
- setMessageFlags :: (MonadIO m, IsMessage o) => o -> [MessageFlags] -> m ()
- constructMessageHttpVersion :: IsMessage o => HTTPVersion -> IO (GValueConstruct o)
- getMessageHttpVersion :: (MonadIO m, IsMessage o) => o -> m HTTPVersion
- setMessageHttpVersion :: (MonadIO m, IsMessage o) => o -> HTTPVersion -> m ()
- clearMessageMethod :: (MonadIO m, IsMessage o) => o -> m ()
- constructMessageMethod :: IsMessage o => Text -> IO (GValueConstruct o)
- getMessageMethod :: (MonadIO m, IsMessage o) => o -> m (Maybe Text)
- setMessageMethod :: (MonadIO m, IsMessage o) => o -> Text -> m ()
- constructMessagePriority :: IsMessage o => MessagePriority -> IO (GValueConstruct o)
- getMessagePriority :: (MonadIO m, IsMessage o) => o -> m MessagePriority
- setMessagePriority :: (MonadIO m, IsMessage o) => o -> MessagePriority -> m ()
- clearMessageReasonPhrase :: (MonadIO m, IsMessage o) => o -> m ()
- constructMessageReasonPhrase :: IsMessage o => Text -> IO (GValueConstruct o)
- getMessageReasonPhrase :: (MonadIO m, IsMessage o) => o -> m (Maybe Text)
- setMessageReasonPhrase :: (MonadIO m, IsMessage o) => o -> Text -> m ()
- getMessageRequestBody :: (MonadIO m, IsMessage o) => o -> m (Maybe MessageBody)
- getMessageRequestBodyData :: (MonadIO m, IsMessage o) => o -> m (Maybe Bytes)
- getMessageRequestHeaders :: (MonadIO m, IsMessage o) => o -> m (Maybe MessageHeaders)
- getMessageResponseBody :: (MonadIO m, IsMessage o) => o -> m (Maybe MessageBody)
- getMessageResponseBodyData :: (MonadIO m, IsMessage o) => o -> m (Maybe Bytes)
- getMessageResponseHeaders :: (MonadIO m, IsMessage o) => o -> m (Maybe MessageHeaders)
- constructMessageServerSide :: IsMessage o => Bool -> IO (GValueConstruct o)
- getMessageServerSide :: (MonadIO m, IsMessage o) => o -> m Bool
- constructMessageStatusCode :: IsMessage o => Word32 -> IO (GValueConstruct o)
- getMessageStatusCode :: (MonadIO m, IsMessage o) => o -> m Word32
- setMessageStatusCode :: (MonadIO m, IsMessage o) => o -> Word32 -> m ()
- clearMessageTlsCertificate :: (MonadIO m, IsMessage o) => o -> m ()
- constructMessageTlsCertificate :: (IsMessage o, IsTlsCertificate a) => a -> IO (GValueConstruct o)
- getMessageTlsCertificate :: (MonadIO m, IsMessage o) => o -> m (Maybe TlsCertificate)
- setMessageTlsCertificate :: (MonadIO m, IsMessage o, IsTlsCertificate a) => o -> a -> m ()
- constructMessageTlsErrors :: IsMessage o => [TlsCertificateFlags] -> IO (GValueConstruct o)
- getMessageTlsErrors :: (MonadIO m, IsMessage o) => o -> m [TlsCertificateFlags]
- setMessageTlsErrors :: (MonadIO m, IsMessage o) => o -> [TlsCertificateFlags] -> m ()
- constructMessageUri :: IsMessage o => URI -> IO (GValueConstruct o)
- getMessageUri :: (MonadIO m, IsMessage o) => o -> m URI
- setMessageUri :: (MonadIO m, IsMessage o) => o -> URI -> m ()
- type C_MessageContentSniffedCallback = Ptr () -> CString -> Ptr (GHashTable CString CString) -> Ptr () -> IO ()
- type MessageContentSniffedCallback = Text -> Map Text Text -> IO ()
- afterMessageContentSniffed :: (IsMessage a, MonadIO m) => a -> MessageContentSniffedCallback -> m SignalHandlerId
- genClosure_MessageContentSniffed :: MessageContentSniffedCallback -> IO Closure
- mk_MessageContentSniffedCallback :: C_MessageContentSniffedCallback -> IO (FunPtr C_MessageContentSniffedCallback)
- noMessageContentSniffedCallback :: Maybe MessageContentSniffedCallback
- onMessageContentSniffed :: (IsMessage a, MonadIO m) => a -> MessageContentSniffedCallback -> m SignalHandlerId
- wrap_MessageContentSniffedCallback :: MessageContentSniffedCallback -> Ptr () -> CString -> Ptr (GHashTable CString CString) -> Ptr () -> IO ()
- type C_MessageFinishedCallback = Ptr () -> Ptr () -> IO ()
- type MessageFinishedCallback = IO ()
- afterMessageFinished :: (IsMessage a, MonadIO m) => a -> MessageFinishedCallback -> m SignalHandlerId
- genClosure_MessageFinished :: MessageFinishedCallback -> IO Closure
- mk_MessageFinishedCallback :: C_MessageFinishedCallback -> IO (FunPtr C_MessageFinishedCallback)
- noMessageFinishedCallback :: Maybe MessageFinishedCallback
- onMessageFinished :: (IsMessage a, MonadIO m) => a -> MessageFinishedCallback -> m SignalHandlerId
- wrap_MessageFinishedCallback :: MessageFinishedCallback -> Ptr () -> Ptr () -> IO ()
- type C_MessageGotBodyCallback = Ptr () -> Ptr () -> IO ()
- type MessageGotBodyCallback = IO ()
- afterMessageGotBody :: (IsMessage a, MonadIO m) => a -> MessageGotBodyCallback -> m SignalHandlerId
- genClosure_MessageGotBody :: MessageGotBodyCallback -> IO Closure
- mk_MessageGotBodyCallback :: C_MessageGotBodyCallback -> IO (FunPtr C_MessageGotBodyCallback)
- noMessageGotBodyCallback :: Maybe MessageGotBodyCallback
- onMessageGotBody :: (IsMessage a, MonadIO m) => a -> MessageGotBodyCallback -> m SignalHandlerId
- wrap_MessageGotBodyCallback :: MessageGotBodyCallback -> Ptr () -> Ptr () -> IO ()
- type C_MessageGotChunkCallback = Ptr () -> Ptr Buffer -> Ptr () -> IO ()
- type MessageGotChunkCallback = Buffer -> IO ()
- afterMessageGotChunk :: (IsMessage a, MonadIO m) => a -> MessageGotChunkCallback -> m SignalHandlerId
- genClosure_MessageGotChunk :: MessageGotChunkCallback -> IO Closure
- mk_MessageGotChunkCallback :: C_MessageGotChunkCallback -> IO (FunPtr C_MessageGotChunkCallback)
- noMessageGotChunkCallback :: Maybe MessageGotChunkCallback
- onMessageGotChunk :: (IsMessage a, MonadIO m) => a -> MessageGotChunkCallback -> m SignalHandlerId
- wrap_MessageGotChunkCallback :: MessageGotChunkCallback -> Ptr () -> Ptr Buffer -> Ptr () -> IO ()
- type C_MessageGotHeadersCallback = Ptr () -> Ptr () -> IO ()
- type MessageGotHeadersCallback = IO ()
- afterMessageGotHeaders :: (IsMessage a, MonadIO m) => a -> MessageGotHeadersCallback -> m SignalHandlerId
- genClosure_MessageGotHeaders :: MessageGotHeadersCallback -> IO Closure
- mk_MessageGotHeadersCallback :: C_MessageGotHeadersCallback -> IO (FunPtr C_MessageGotHeadersCallback)
- noMessageGotHeadersCallback :: Maybe MessageGotHeadersCallback
- onMessageGotHeaders :: (IsMessage a, MonadIO m) => a -> MessageGotHeadersCallback -> m SignalHandlerId
- wrap_MessageGotHeadersCallback :: MessageGotHeadersCallback -> Ptr () -> Ptr () -> IO ()
- type C_MessageGotInformationalCallback = Ptr () -> Ptr () -> IO ()
- type MessageGotInformationalCallback = IO ()
- afterMessageGotInformational :: (IsMessage a, MonadIO m) => a -> MessageGotInformationalCallback -> m SignalHandlerId
- genClosure_MessageGotInformational :: MessageGotInformationalCallback -> IO Closure
- mk_MessageGotInformationalCallback :: C_MessageGotInformationalCallback -> IO (FunPtr C_MessageGotInformationalCallback)
- noMessageGotInformationalCallback :: Maybe MessageGotInformationalCallback
- onMessageGotInformational :: (IsMessage a, MonadIO m) => a -> MessageGotInformationalCallback -> m SignalHandlerId
- wrap_MessageGotInformationalCallback :: MessageGotInformationalCallback -> Ptr () -> Ptr () -> IO ()
- type C_MessageNetworkEventCallback = Ptr () -> CUInt -> Ptr IOStream -> Ptr () -> IO ()
- type MessageNetworkEventCallback = SocketClientEvent -> IOStream -> IO ()
- afterMessageNetworkEvent :: (IsMessage a, MonadIO m) => a -> MessageNetworkEventCallback -> m SignalHandlerId
- genClosure_MessageNetworkEvent :: MessageNetworkEventCallback -> IO Closure
- mk_MessageNetworkEventCallback :: C_MessageNetworkEventCallback -> IO (FunPtr C_MessageNetworkEventCallback)
- noMessageNetworkEventCallback :: Maybe MessageNetworkEventCallback
- onMessageNetworkEvent :: (IsMessage a, MonadIO m) => a -> MessageNetworkEventCallback -> m SignalHandlerId
- wrap_MessageNetworkEventCallback :: MessageNetworkEventCallback -> Ptr () -> CUInt -> Ptr IOStream -> Ptr () -> IO ()
- type C_MessageRestartedCallback = Ptr () -> Ptr () -> IO ()
- type MessageRestartedCallback = IO ()
- afterMessageRestarted :: (IsMessage a, MonadIO m) => a -> MessageRestartedCallback -> m SignalHandlerId
- genClosure_MessageRestarted :: MessageRestartedCallback -> IO Closure
- mk_MessageRestartedCallback :: C_MessageRestartedCallback -> IO (FunPtr C_MessageRestartedCallback)
- noMessageRestartedCallback :: Maybe MessageRestartedCallback
- onMessageRestarted :: (IsMessage a, MonadIO m) => a -> MessageRestartedCallback -> m SignalHandlerId
- wrap_MessageRestartedCallback :: MessageRestartedCallback -> Ptr () -> Ptr () -> IO ()
- type C_MessageStartingCallback = Ptr () -> Ptr () -> IO ()
- type MessageStartingCallback = IO ()
- afterMessageStarting :: (IsMessage a, MonadIO m) => a -> MessageStartingCallback -> m SignalHandlerId
- genClosure_MessageStarting :: MessageStartingCallback -> IO Closure
- mk_MessageStartingCallback :: C_MessageStartingCallback -> IO (FunPtr C_MessageStartingCallback)
- noMessageStartingCallback :: Maybe MessageStartingCallback
- onMessageStarting :: (IsMessage a, MonadIO m) => a -> MessageStartingCallback -> m SignalHandlerId
- wrap_MessageStartingCallback :: MessageStartingCallback -> Ptr () -> Ptr () -> IO ()
- type C_MessageWroteBodyCallback = Ptr () -> Ptr () -> IO ()
- type MessageWroteBodyCallback = IO ()
- afterMessageWroteBody :: (IsMessage a, MonadIO m) => a -> MessageWroteBodyCallback -> m SignalHandlerId
- genClosure_MessageWroteBody :: MessageWroteBodyCallback -> IO Closure
- mk_MessageWroteBodyCallback :: C_MessageWroteBodyCallback -> IO (FunPtr C_MessageWroteBodyCallback)
- noMessageWroteBodyCallback :: Maybe MessageWroteBodyCallback
- onMessageWroteBody :: (IsMessage a, MonadIO m) => a -> MessageWroteBodyCallback -> m SignalHandlerId
- wrap_MessageWroteBodyCallback :: MessageWroteBodyCallback -> Ptr () -> Ptr () -> IO ()
- type C_MessageWroteBodyDataCallback = Ptr () -> Ptr Buffer -> Ptr () -> IO ()
- type MessageWroteBodyDataCallback = Buffer -> IO ()
- afterMessageWroteBodyData :: (IsMessage a, MonadIO m) => a -> MessageWroteBodyDataCallback -> m SignalHandlerId
- genClosure_MessageWroteBodyData :: MessageWroteBodyDataCallback -> IO Closure
- mk_MessageWroteBodyDataCallback :: C_MessageWroteBodyDataCallback -> IO (FunPtr C_MessageWroteBodyDataCallback)
- noMessageWroteBodyDataCallback :: Maybe MessageWroteBodyDataCallback
- onMessageWroteBodyData :: (IsMessage a, MonadIO m) => a -> MessageWroteBodyDataCallback -> m SignalHandlerId
- wrap_MessageWroteBodyDataCallback :: MessageWroteBodyDataCallback -> Ptr () -> Ptr Buffer -> Ptr () -> IO ()
- type C_MessageWroteChunkCallback = Ptr () -> Ptr () -> IO ()
- type MessageWroteChunkCallback = IO ()
- afterMessageWroteChunk :: (IsMessage a, MonadIO m) => a -> MessageWroteChunkCallback -> m SignalHandlerId
- genClosure_MessageWroteChunk :: MessageWroteChunkCallback -> IO Closure
- mk_MessageWroteChunkCallback :: C_MessageWroteChunkCallback -> IO (FunPtr C_MessageWroteChunkCallback)
- noMessageWroteChunkCallback :: Maybe MessageWroteChunkCallback
- onMessageWroteChunk :: (IsMessage a, MonadIO m) => a -> MessageWroteChunkCallback -> m SignalHandlerId
- wrap_MessageWroteChunkCallback :: MessageWroteChunkCallback -> Ptr () -> Ptr () -> IO ()
- type C_MessageWroteHeadersCallback = Ptr () -> Ptr () -> IO ()
- type MessageWroteHeadersCallback = IO ()
- afterMessageWroteHeaders :: (IsMessage a, MonadIO m) => a -> MessageWroteHeadersCallback -> m SignalHandlerId
- genClosure_MessageWroteHeaders :: MessageWroteHeadersCallback -> IO Closure
- mk_MessageWroteHeadersCallback :: C_MessageWroteHeadersCallback -> IO (FunPtr C_MessageWroteHeadersCallback)
- noMessageWroteHeadersCallback :: Maybe MessageWroteHeadersCallback
- onMessageWroteHeaders :: (IsMessage a, MonadIO m) => a -> MessageWroteHeadersCallback -> m SignalHandlerId
- wrap_MessageWroteHeadersCallback :: MessageWroteHeadersCallback -> Ptr () -> Ptr () -> IO ()
- type C_MessageWroteInformationalCallback = Ptr () -> Ptr () -> IO ()
- type MessageWroteInformationalCallback = IO ()
- afterMessageWroteInformational :: (IsMessage a, MonadIO m) => a -> MessageWroteInformationalCallback -> m SignalHandlerId
- genClosure_MessageWroteInformational :: MessageWroteInformationalCallback -> IO Closure
- mk_MessageWroteInformationalCallback :: C_MessageWroteInformationalCallback -> IO (FunPtr C_MessageWroteInformationalCallback)
- noMessageWroteInformationalCallback :: Maybe MessageWroteInformationalCallback
- onMessageWroteInformational :: (IsMessage a, MonadIO m) => a -> MessageWroteInformationalCallback -> m SignalHandlerId
- wrap_MessageWroteInformationalCallback :: MessageWroteInformationalCallback -> Ptr () -> Ptr () -> IO ()
Exported types
Constructors
Message (ManagedPtr Message) |
Methods
contentSniffed
messageContentSniffed :: (HasCallStack, MonadIO m, IsMessage a) => a -> Text -> Map (Ptr ()) (Ptr ()) -> m () Source #
No description available in the introspection data.
disableFeature
messageDisableFeature Source #
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> GType |
|
-> m () |
This disables the actions of SessionFeature
<!-- -->s with the
given featureType
(or a subclass of that type) on msg
, so that
msg
is processed as though the feature(s) hadn't been added to the
session. Eg, passing SOUP_TYPE_CONTENT_SNIFFER
for featureType
will disable Content-Type sniffing on the message.
You must call this before queueing msg
on a session; calling it on
a message that has already been queued is undefined. In particular,
you cannot call this on a message that is being requeued after a
redirect or authentication.
Since: 2.28
finished
messageFinished :: (HasCallStack, MonadIO m, IsMessage a) => a -> m () Source #
No description available in the introspection data.
getAddress
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> m Address | Returns: the address |
Gets the address msg
's URI points to. After first setting the
URI on a message, this will be unresolved, although the message's
session will resolve it before sending the message.
Since: 2.26
getFirstParty
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> m URI | Returns: the |
Gets msg
's first-party URI
Since: 2.30
getFlags
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> m [MessageFlags] | Returns: the flags |
Gets the flags on msg
getHttpVersion
messageGetHttpVersion Source #
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> m HTTPVersion | Returns: the HTTP version |
Gets the HTTP version of msg
. This is the minimum of the
version from the request and the version from the response.
getHttpsStatus
messageGetHttpsStatus Source #
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> m (Bool, TlsCertificate, [TlsCertificateFlags]) |
If msg
is using https (or attempted to use https but got
StatusSslFailed
), this retrieves the TlsCertificate
associated with its connection, and the TlsCertificateFlags
showing what problems, if any, have been found with that
certificate.
<note><para>This is only meaningful with messages processed by a Session
and is
not useful for messages received by a Server
</para></note>
Since: 2.34
getPriority
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> m MessagePriority | Returns: the priority of the message. |
Retrieves the MessagePriority
. If not set this value defaults
to SOUP_MESSAGE_PRIORITY_NORMAL
.
Since: 2.44
getSoupRequest
getUri
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> m URI | Returns: the URI |
Gets msg
's URI
gotBody
messageGotBody :: (HasCallStack, MonadIO m, IsMessage a) => a -> m () Source #
No description available in the introspection data.
gotChunk
messageGotChunk :: (HasCallStack, MonadIO m, IsMessage a) => a -> Buffer -> m () Source #
No description available in the introspection data.
gotHeaders
messageGotHeaders :: (HasCallStack, MonadIO m, IsMessage a) => a -> m () Source #
No description available in the introspection data.
gotInformational
messageGotInformational :: (HasCallStack, MonadIO m, IsMessage a) => a -> m () Source #
No description available in the introspection data.
isKeepalive
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> m Bool |
Determines whether or not msg
's connection can be kept alive for
further requests after processing msg
, based on the HTTP version,
Connection header, etc.
new
Arguments
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> Text |
|
-> m (Maybe Message) | Returns: the new |
Creates a new empty Message
, which will connect to uri
newFromUri
Arguments
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> URI |
|
-> m Message | Returns: the new |
Creates a new empty Message
, which will connect to uri
restarted
messageRestarted :: (HasCallStack, MonadIO m, IsMessage a) => a -> m () Source #
No description available in the introspection data.
setChunkAllocator
messageSetChunkAllocator Source #
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> ChunkAllocator |
|
-> m () |
Deprecated: Request
provides a much simpler API that lets youread the response directly into your own buffers without needing tomess with callbacks, pausing/unpausing, etc.
Sets an alternate chunk-allocation function to use when reading
msg
's body when using the traditional (ie,
non-Request
<!-- -->-based) API. Every time data is available
to read, libsoup will call allocator
, which should return a
Buffer
. (See ChunkAllocator
for additional details.)
Libsoup will then read data from the network into that buffer, and
update the buffer's <literal>length</literal> to indicate how much
data it read.
Generally, a custom chunk allocator would be used in conjunction
with messageBodySetAccumulate
False
and
Message
::got_chunk
, as part of a strategy to avoid unnecessary
copying of data. However, you cannot assume that every call to the
allocator will be followed by a call to your
Message
::got_chunk
handler; if an I/O error occurs, then the
buffer will be unreffed without ever having been used. If your
buffer-allocation strategy requires special cleanup, use
bufferNewWithOwner
rather than doing the cleanup from the
Message
::got_chunk
handler.
The other thing to remember when using non-accumulating message
bodies is that the buffer passed to the Message
::got_chunk
handler will be unreffed after the handler returns, just as it
would be in the non-custom-allocated case. If you want to hand the
chunk data off to some other part of your program to use later,
you'll need to ref the Buffer
(or its owner, in the
bufferNewWithOwner
case) to ensure that the data remains
valid.
setFirstParty
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> URI |
|
-> m () |
Sets firstParty
as the main document URI
for msg
. For
details of when and how this is used refer to the documentation for
CookieJarAcceptPolicy
.
Since: 2.30
setFlags
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> [MessageFlags] |
|
-> m () |
Sets the specified flags on msg
.
setHttpVersion
messageSetHttpVersion Source #
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> HTTPVersion |
|
-> m () |
Sets the HTTP version on msg
. The default version is
HTTPVersionHttp11
. Setting it to HTTPVersionHttp10
will prevent certain
functionality from being used.
setPriority
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> MessagePriority |
|
-> m () |
Sets the priority of a message. Note that this won't have any effect unless used before the message is added to the session's message processing queue.
The message will be placed just before any other previously added message with lower priority (messages with the same priority are processed on a FIFO basis).
Setting priorities does not currently work with SessionSync
(or with synchronous messages on a plain Session
) because in
the synchronous/blocking case, priority ends up being determined
semi-randomly by thread scheduling.
Since: 2.44
setRedirect
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> Word32 |
|
-> Text |
|
-> m () |
Sets msg
's status_code to statusCode
and adds a Location header
pointing to redirectUri
. Use this from a Server
when you
want to redirect the client to another URI.
redirectUri
can be a relative URI, in which case it is
interpreted relative to msg
's current URI. In particular, if
redirectUri
is just a path, it will replace the path
<emphasis>and query</emphasis> of msg
's URI.
Since: 2.38
setRequest
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> Maybe Text |
|
-> MemoryUse |
|
-> Maybe ByteString |
|
-> m () |
setResponse
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> Maybe Text |
|
-> MemoryUse |
|
-> Maybe ByteString |
|
-> m () |
setStatus
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> Word32 |
|
-> m () |
Sets msg
's status code to statusCode
. If statusCode
is a
known value, it will also set msg
's reason_phrase.
setStatusFull
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> Word32 |
|
-> Text |
|
-> m () |
Sets msg
's status code and reason phrase.
setUri
Arguments
:: (HasCallStack, MonadIO m, IsMessage a) | |
=> a |
|
-> URI |
|
-> m () |
Sets msg
's URI to uri
. If msg
has already been sent and you want
to re-send it with the new URI, you need to call
sessionRequeueMessage
.
starting
messageStarting :: (HasCallStack, MonadIO m, IsMessage a) => a -> m () Source #
No description available in the introspection data.
wroteBody
messageWroteBody :: (HasCallStack, MonadIO m, IsMessage a) => a -> m () Source #
No description available in the introspection data.
wroteBodyData
messageWroteBodyData :: (HasCallStack, MonadIO m, IsMessage a) => a -> Buffer -> m () Source #
No description available in the introspection data.
wroteChunk
messageWroteChunk :: (HasCallStack, MonadIO m, IsMessage a) => a -> m () Source #
No description available in the introspection data.
wroteHeaders
messageWroteHeaders :: (HasCallStack, MonadIO m, IsMessage a) => a -> m () Source #
No description available in the introspection data.
wroteInformational
messageWroteInformational :: (HasCallStack, MonadIO m, IsMessage a) => a -> m () Source #
No description available in the introspection data.
Properties
firstParty
constructMessageFirstParty :: IsMessage o => URI -> IO (GValueConstruct o) Source #
flags
constructMessageFlags :: IsMessage o => [MessageFlags] -> IO (GValueConstruct o) Source #
getMessageFlags :: (MonadIO m, IsMessage o) => o -> m [MessageFlags] Source #
setMessageFlags :: (MonadIO m, IsMessage o) => o -> [MessageFlags] -> m () Source #
httpVersion
constructMessageHttpVersion :: IsMessage o => HTTPVersion -> IO (GValueConstruct o) Source #
getMessageHttpVersion :: (MonadIO m, IsMessage o) => o -> m HTTPVersion Source #
setMessageHttpVersion :: (MonadIO m, IsMessage o) => o -> HTTPVersion -> m () Source #
method
clearMessageMethod :: (MonadIO m, IsMessage o) => o -> m () Source #
constructMessageMethod :: IsMessage o => Text -> IO (GValueConstruct o) Source #
priority
constructMessagePriority :: IsMessage o => MessagePriority -> IO (GValueConstruct o) Source #
getMessagePriority :: (MonadIO m, IsMessage o) => o -> m MessagePriority Source #
setMessagePriority :: (MonadIO m, IsMessage o) => o -> MessagePriority -> m () Source #
reasonPhrase
clearMessageReasonPhrase :: (MonadIO m, IsMessage o) => o -> m () Source #
constructMessageReasonPhrase :: IsMessage o => Text -> IO (GValueConstruct o) Source #
requestBody
getMessageRequestBody :: (MonadIO m, IsMessage o) => o -> m (Maybe MessageBody) Source #
requestBodyData
requestHeaders
getMessageRequestHeaders :: (MonadIO m, IsMessage o) => o -> m (Maybe MessageHeaders) Source #
responseBody
getMessageResponseBody :: (MonadIO m, IsMessage o) => o -> m (Maybe MessageBody) Source #
responseBodyData
responseHeaders
getMessageResponseHeaders :: (MonadIO m, IsMessage o) => o -> m (Maybe MessageHeaders) Source #
serverSide
constructMessageServerSide :: IsMessage o => Bool -> IO (GValueConstruct o) Source #
statusCode
constructMessageStatusCode :: IsMessage o => Word32 -> IO (GValueConstruct o) Source #
tlsCertificate
clearMessageTlsCertificate :: (MonadIO m, IsMessage o) => o -> m () Source #
constructMessageTlsCertificate :: (IsMessage o, IsTlsCertificate a) => a -> IO (GValueConstruct o) Source #
getMessageTlsCertificate :: (MonadIO m, IsMessage o) => o -> m (Maybe TlsCertificate) Source #
setMessageTlsCertificate :: (MonadIO m, IsMessage o, IsTlsCertificate a) => o -> a -> m () Source #
tlsErrors
constructMessageTlsErrors :: IsMessage o => [TlsCertificateFlags] -> IO (GValueConstruct o) Source #
getMessageTlsErrors :: (MonadIO m, IsMessage o) => o -> m [TlsCertificateFlags] Source #
setMessageTlsErrors :: (MonadIO m, IsMessage o) => o -> [TlsCertificateFlags] -> m () Source #
uri
constructMessageUri :: IsMessage o => URI -> IO (GValueConstruct o) Source #
Signals
contentSniffed
type C_MessageContentSniffedCallback = Ptr () -> CString -> Ptr (GHashTable CString CString) -> Ptr () -> IO () Source #
afterMessageContentSniffed :: (IsMessage a, MonadIO m) => a -> MessageContentSniffedCallback -> m SignalHandlerId Source #
mk_MessageContentSniffedCallback :: C_MessageContentSniffedCallback -> IO (FunPtr C_MessageContentSniffedCallback) Source #
onMessageContentSniffed :: (IsMessage a, MonadIO m) => a -> MessageContentSniffedCallback -> m SignalHandlerId Source #
wrap_MessageContentSniffedCallback :: MessageContentSniffedCallback -> Ptr () -> CString -> Ptr (GHashTable CString CString) -> Ptr () -> IO () Source #
finished
type MessageFinishedCallback = IO () Source #
afterMessageFinished :: (IsMessage a, MonadIO m) => a -> MessageFinishedCallback -> m SignalHandlerId Source #
mk_MessageFinishedCallback :: C_MessageFinishedCallback -> IO (FunPtr C_MessageFinishedCallback) Source #
onMessageFinished :: (IsMessage a, MonadIO m) => a -> MessageFinishedCallback -> m SignalHandlerId Source #
wrap_MessageFinishedCallback :: MessageFinishedCallback -> Ptr () -> Ptr () -> IO () Source #
gotBody
type MessageGotBodyCallback = IO () Source #
afterMessageGotBody :: (IsMessage a, MonadIO m) => a -> MessageGotBodyCallback -> m SignalHandlerId Source #
mk_MessageGotBodyCallback :: C_MessageGotBodyCallback -> IO (FunPtr C_MessageGotBodyCallback) Source #
onMessageGotBody :: (IsMessage a, MonadIO m) => a -> MessageGotBodyCallback -> m SignalHandlerId Source #
wrap_MessageGotBodyCallback :: MessageGotBodyCallback -> Ptr () -> Ptr () -> IO () Source #
gotChunk
type MessageGotChunkCallback = Buffer -> IO () Source #
afterMessageGotChunk :: (IsMessage a, MonadIO m) => a -> MessageGotChunkCallback -> m SignalHandlerId Source #
mk_MessageGotChunkCallback :: C_MessageGotChunkCallback -> IO (FunPtr C_MessageGotChunkCallback) Source #
onMessageGotChunk :: (IsMessage a, MonadIO m) => a -> MessageGotChunkCallback -> m SignalHandlerId Source #
wrap_MessageGotChunkCallback :: MessageGotChunkCallback -> Ptr () -> Ptr Buffer -> Ptr () -> IO () Source #
gotHeaders
type MessageGotHeadersCallback = IO () Source #
afterMessageGotHeaders :: (IsMessage a, MonadIO m) => a -> MessageGotHeadersCallback -> m SignalHandlerId Source #
mk_MessageGotHeadersCallback :: C_MessageGotHeadersCallback -> IO (FunPtr C_MessageGotHeadersCallback) Source #
onMessageGotHeaders :: (IsMessage a, MonadIO m) => a -> MessageGotHeadersCallback -> m SignalHandlerId Source #
wrap_MessageGotHeadersCallback :: MessageGotHeadersCallback -> Ptr () -> Ptr () -> IO () Source #
gotInformational
type MessageGotInformationalCallback = IO () Source #
afterMessageGotInformational :: (IsMessage a, MonadIO m) => a -> MessageGotInformationalCallback -> m SignalHandlerId Source #
mk_MessageGotInformationalCallback :: C_MessageGotInformationalCallback -> IO (FunPtr C_MessageGotInformationalCallback) Source #
onMessageGotInformational :: (IsMessage a, MonadIO m) => a -> MessageGotInformationalCallback -> m SignalHandlerId Source #
wrap_MessageGotInformationalCallback :: MessageGotInformationalCallback -> Ptr () -> Ptr () -> IO () Source #
networkEvent
type MessageNetworkEventCallback = SocketClientEvent -> IOStream -> IO () Source #
afterMessageNetworkEvent :: (IsMessage a, MonadIO m) => a -> MessageNetworkEventCallback -> m SignalHandlerId Source #
mk_MessageNetworkEventCallback :: C_MessageNetworkEventCallback -> IO (FunPtr C_MessageNetworkEventCallback) Source #
onMessageNetworkEvent :: (IsMessage a, MonadIO m) => a -> MessageNetworkEventCallback -> m SignalHandlerId Source #
wrap_MessageNetworkEventCallback :: MessageNetworkEventCallback -> Ptr () -> CUInt -> Ptr IOStream -> Ptr () -> IO () Source #
restarted
type MessageRestartedCallback = IO () Source #
afterMessageRestarted :: (IsMessage a, MonadIO m) => a -> MessageRestartedCallback -> m SignalHandlerId Source #
mk_MessageRestartedCallback :: C_MessageRestartedCallback -> IO (FunPtr C_MessageRestartedCallback) Source #
onMessageRestarted :: (IsMessage a, MonadIO m) => a -> MessageRestartedCallback -> m SignalHandlerId Source #
wrap_MessageRestartedCallback :: MessageRestartedCallback -> Ptr () -> Ptr () -> IO () Source #
starting
type MessageStartingCallback = IO () Source #
afterMessageStarting :: (IsMessage a, MonadIO m) => a -> MessageStartingCallback -> m SignalHandlerId Source #
mk_MessageStartingCallback :: C_MessageStartingCallback -> IO (FunPtr C_MessageStartingCallback) Source #
onMessageStarting :: (IsMessage a, MonadIO m) => a -> MessageStartingCallback -> m SignalHandlerId Source #
wrap_MessageStartingCallback :: MessageStartingCallback -> Ptr () -> Ptr () -> IO () Source #
wroteBody
type MessageWroteBodyCallback = IO () Source #
afterMessageWroteBody :: (IsMessage a, MonadIO m) => a -> MessageWroteBodyCallback -> m SignalHandlerId Source #
mk_MessageWroteBodyCallback :: C_MessageWroteBodyCallback -> IO (FunPtr C_MessageWroteBodyCallback) Source #
onMessageWroteBody :: (IsMessage a, MonadIO m) => a -> MessageWroteBodyCallback -> m SignalHandlerId Source #
wrap_MessageWroteBodyCallback :: MessageWroteBodyCallback -> Ptr () -> Ptr () -> IO () Source #
wroteBodyData
type MessageWroteBodyDataCallback = Buffer -> IO () Source #
afterMessageWroteBodyData :: (IsMessage a, MonadIO m) => a -> MessageWroteBodyDataCallback -> m SignalHandlerId Source #
mk_MessageWroteBodyDataCallback :: C_MessageWroteBodyDataCallback -> IO (FunPtr C_MessageWroteBodyDataCallback) Source #
onMessageWroteBodyData :: (IsMessage a, MonadIO m) => a -> MessageWroteBodyDataCallback -> m SignalHandlerId Source #
wrap_MessageWroteBodyDataCallback :: MessageWroteBodyDataCallback -> Ptr () -> Ptr Buffer -> Ptr () -> IO () Source #
wroteChunk
type MessageWroteChunkCallback = IO () Source #
afterMessageWroteChunk :: (IsMessage a, MonadIO m) => a -> MessageWroteChunkCallback -> m SignalHandlerId Source #
mk_MessageWroteChunkCallback :: C_MessageWroteChunkCallback -> IO (FunPtr C_MessageWroteChunkCallback) Source #
onMessageWroteChunk :: (IsMessage a, MonadIO m) => a -> MessageWroteChunkCallback -> m SignalHandlerId Source #
wrap_MessageWroteChunkCallback :: MessageWroteChunkCallback -> Ptr () -> Ptr () -> IO () Source #
wroteHeaders
type MessageWroteHeadersCallback = IO () Source #
afterMessageWroteHeaders :: (IsMessage a, MonadIO m) => a -> MessageWroteHeadersCallback -> m SignalHandlerId Source #
mk_MessageWroteHeadersCallback :: C_MessageWroteHeadersCallback -> IO (FunPtr C_MessageWroteHeadersCallback) Source #
onMessageWroteHeaders :: (IsMessage a, MonadIO m) => a -> MessageWroteHeadersCallback -> m SignalHandlerId Source #
wrap_MessageWroteHeadersCallback :: MessageWroteHeadersCallback -> Ptr () -> Ptr () -> IO () Source #
wroteInformational
type MessageWroteInformationalCallback = IO () Source #
afterMessageWroteInformational :: (IsMessage a, MonadIO m) => a -> MessageWroteInformationalCallback -> m SignalHandlerId Source #
mk_MessageWroteInformationalCallback :: C_MessageWroteInformationalCallback -> IO (FunPtr C_MessageWroteInformationalCallback) Source #
onMessageWroteInformational :: (IsMessage a, MonadIO m) => a -> MessageWroteInformationalCallback -> m SignalHandlerId Source #
wrap_MessageWroteInformationalCallback :: MessageWroteInformationalCallback -> Ptr () -> Ptr () -> IO () Source #