Sets our main struct and passes it to the parent class.
Creates a new empty #SoupMessage, which will connect to @uri
Creates a new empty #SoupMessage, which will connect to @uri
Adds a signal handler to @msg for @signal, as with g_signal_connect(), but the @callback will only be run if @msg's incoming messages headers (that is, the <literal>request_headers</literal> for a client #SoupMessage, or the <literal>response_headers</literal> for a server #SoupMessage) contain a header named @header.
This signal is emitted after #SoupMessage::got-headers, and before the first #SoupMessage::got-chunk. If content sniffing is disabled, or no content sniffing will be performed, due to the sniffer deciding to trust the Content-Type sent by the server, this signal is emitted immediately after #SoupMessage::got-headers, and @type is %NULL.
Emitted when all HTTP processing is finished for a message. (After #SoupMessage::got_body for client-side messages, or after #SoupMessage::wrote_body for server-side messages.)
Emitted after receiving the complete message body. (For a server-side message, this means it has received the request body. For a client-side message, this means it has received the response body and is nearly done with the message.)
Emitted after receiving a chunk of a message body. Note that "chunk" in this context means any subpiece of the body, not necessarily the specific HTTP 1.1 chunks sent by the other side.
Emitted after receiving all message headers for a message. (For a client-side message, this is after receiving the Status-Line and response headers; for a server-side message, it is after receiving the Request-Line and request headers.)
Emitted after receiving a 1xx (Informational) response for a (client-side) message. The response_headers will be filled in with the headers associated with the informational response; however, those header values will be erased after this signal is done.
Emitted to indicate that some network-related event related to @msg has occurred. This essentially proxies the #GSocketClient::event signal, but only for events that occur while @msg "owns" the connection; if @msg is sent on an existing persistent connection, then this signal will not be emitted. (If you want to force the message to be sent on a new connection, set the %SOUP_MESSAGE_NEW_CONNECTION flag on it.)
Emitted when a request that was already sent once is now being sent again (eg, because the first attempt received a redirection response, or because we needed to use authentication).
Emitted just before a message is sent.
Emitted immediately after writing the complete body for a message. (For a client-side message, this means that libsoup is done writing and is now waiting for the response from the server. For a server-side message, this means that libsoup has finished writing the response and is nearly done with the message.)
Emitted immediately after writing a portion of the message body to the network.
Emitted immediately after writing a body chunk for a message.
Emitted immediately after writing the headers for a message. (For a client-side message, this is after writing the request headers; for a server-side message, it is after writing the response headers.)
Emitted immediately after writing a 1xx (Informational) response for a (server-side) message.
Adds a signal handler to @msg for @signal, as with g_signal_connect(), but the @callback will only be run if @msg has the status @status_code.
This disables the actions of #SoupSessionFeature<!-- -->s with the given @feature_type (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 @feature_type will disable Content-Type sniffing on the message.
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.
Gets @msg's first-party #SoupURI
Gets the flags on @msg
Gets the HTTP version of @msg. This is the minimum of the version from the request and the version from the response.
If @msg is using https (or attempted to use https but got %SOUP_STATUS_SSL_FAILED), this retrieves the #GTlsCertificate associated with its connection, and the #GTlsCertificateFlags showing what problems, if any, have been found with that certificate.
Get the main Gtk struct
Retrieves the #SoupMessagePriority. If not set this value defaults to #SOUP_MESSAGE_PRIORITY_NORMAL.
Gets @msg's site for cookies #SoupURI
If @msg is associated with a #SoupRequest, this returns that request. Otherwise it returns %NULL.
the main Gtk struct as a void*
Gets @msg's URI
Get whether #SoupSessionFeature<!-- -->s of the given @feature_type (or a subclass of that type) are disabled on @msg. See soup_message_disable_feature().
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.
Sets an alternate chunk-allocation function to use when reading @msg's body when using the traditional (ie, non-#SoupRequest<!-- -->-based) API. Every time data is available to read, libsoup will call @allocator, which should return a #SoupBuffer. (See #SoupChunkAllocator 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.
Sets @first_party as the main document #SoupURI for @msg. For details of when and how this is used refer to the documentation for #SoupCookieJarAcceptPolicy.
Sets the specified flags on @msg.
Sets the HTTP version on @msg. The default version is %SOUP_HTTP_1_1. Setting it to %SOUP_HTTP_1_0 will prevent certain functionality from being used.
See the same-site spec for more information.
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.
Sets @msg's status_code to @status_code and adds a Location header pointing to @redirect_uri. Use this from a #SoupServer when you want to redirect the client to another URI.
Convenience function to set the request body of a #SoupMessage. If @content_type is %NULL, the request body must be empty as well.
Convenience function to set the response body of a #SoupMessage. If @content_type is %NULL, the response body must be empty as well.
Sets @site_for_cookies as the policy URL for same-site cookies for @msg.
Sets @msg's status code to @status_code. If @status_code is a known value, it will also set @msg's reason_phrase.
Sets @msg's status code and reason phrase.
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 soup_session_requeue_message().
the main Gtk struct
A #SoupMessage represents an HTTP message that is being sent or received.
For client-side usage, if you are using the traditional #SoupSession APIs (soup_session_queue_message() and soup_session_send_message()), you would create a #SoupMessage with soup_message_new() or soup_message_new_from_uri(), set up its fields appropriately, and send it. If you are using the newer #SoupRequest API, you would create a request with soup_session_request_http() or soup_session_request_http_uri(), and the returned #SoupRequestHTTP will already have an associated #SoupMessage that you can retrieve via soup_request_http_get_message().
For server-side usage, #SoupServer will create #SoupMessage<!-- -->s automatically for incoming requests, which your application will receive via handlers.
Note that libsoup's terminology here does not quite match the HTTP specification: in RFC 2616, an "HTTP-message" is <emphasis>either</emphasis> a Request, <emphasis>or</emphasis> a Response. In libsoup, a #SoupMessage combines both the request and the response.