<!-- ##### SECTION Title ##### -->
SoupMessage

<!-- ##### SECTION Short_Description ##### -->


<!-- ##### SECTION Long_Description ##### -->
<para>

</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### ENUM SoupMessageStatus ##### -->
<para>
Enum indicating the lifecycle of a #SoupMessage.
</para>

@SOUP_MESSAGE_STATUS_IDLE: The message has not yet been queued.
@SOUP_MESSAGE_STATUS_QUEUED: The message has been queued, but is
waiting for a connection to be available.
@SOUP_MESSAGE_STATUS_CONNECTING: The message is waiting for a specific
connection to finish connecting.
@SOUP_MESSAGE_STATUS_RUNNING: The message is being processed.
@SOUP_MESSAGE_STATUS_FINISHED: The message is complete (request and
response both processed).

<!-- ##### MACRO SOUP_MESSAGE_IS_STARTING ##### -->

<para>
Tests if @msg is in a "starting" state, waiting to be sent. (More
commonly used to test if a message has been requeued after its first
attempt.)
</para>

@msg: a #SoupMessage
@Returns: %TRUE if @msg is waiting to be sent.


<!-- ##### ENUM SoupTransferEncoding ##### -->
<para>
How the length of a request or response is to be encoded.
</para>

@SOUP_TRANSFER_UNKNOWN: HTTP 1.0-style (content ends when the
connection is closed)
@SOUP_TRANSFER_CHUNKED: chunked encoding (only supported for response)
@SOUP_TRANSFER_CONTENT_LENGTH: Content-Length

<!-- ##### ENUM SoupOwnership ##### -->
<para>
Used by #SoupDataBuffer (and several functions) to indicate the
ownership of a buffer.
</para>

@SOUP_BUFFER_SYSTEM_OWNED: The data is owned by soup and it can free
it when it is done with it.
@SOUP_BUFFER_USER_OWNED: The data is owned by the user, who is
responsible for freeing it at the right point
@SOUP_BUFFER_STATIC: The data should not be freed.

<!-- ##### STRUCT SoupDataBuffer ##### -->
<para>
A data buffer used in several places.
</para>

@owner: the ownership of the data
@body: the data itself
@length: length of @body

<!-- ##### USER_FUNCTION SoupMessageCallbackFn ##### -->
<para>
A callback function used by many #SoupMessage methods.
</para>

@req: the #SoupMessage in question
@user_data: user data


<!-- ##### FUNCTION soup_message_new ##### -->
<para>

</para>

@method: 
@uri_string: 
@Returns: 
<!-- # Unused Parameters # -->
@uri: 


<!-- ##### FUNCTION soup_message_new_from_uri ##### -->
<para>

</para>

@method: 
@uri: 
@Returns: 


<!-- ##### FUNCTION soup_message_set_request ##### -->
<para>

</para>

@msg: 
@content_type: 
@req_owner: 
@req_body: 
@req_length: 
<!-- # Unused Parameters # -->
@req_len: 


<!-- ##### FUNCTION soup_message_set_response ##### -->
<para>

</para>

@msg: 
@content_type: 
@resp_owner: 
@resp_body: 
@resp_length: 
<!-- # Unused Parameters # -->
@resp_len: 


<!-- ##### FUNCTION soup_message_add_header ##### -->
<para>

</para>

@hash: 
@name: 
@value: 


<!-- ##### FUNCTION soup_message_get_header ##### -->
<para>

</para>

@hash: 
@name: 
@Returns: 


<!-- ##### FUNCTION soup_message_get_header_list ##### -->
<para>

</para>

@hash: 
@name: 
@Returns: 


<!-- ##### FUNCTION soup_message_foreach_header ##### -->
<para>

</para>

@hash: 
@func: 
@user_data: 


<!-- ##### FUNCTION soup_message_remove_header ##### -->
<para>

</para>

@hash: 
@name: 


<!-- ##### FUNCTION soup_message_clear_headers ##### -->
<para>

</para>

@hash: 


<!-- ##### ENUM SoupHttpVersion ##### -->
<para>
Indicates the HTTP protocol version being used.
</para>

@SOUP_HTTP_1_0: HTTP 1.0 (RFC 1945)
@SOUP_HTTP_1_1: HTTP 1.1 (RFC 2616)

<!-- ##### FUNCTION soup_message_set_http_version ##### -->
<para>

</para>

@msg: 
@version: 


<!-- ##### FUNCTION soup_message_get_http_version ##### -->
<para>

</para>

@msg: 
@Returns: 


<!-- ##### FUNCTION soup_message_is_keepalive ##### -->
<para>

</para>

@msg: 
@Returns: 


<!-- ##### FUNCTION soup_message_get_uri ##### -->
<para>

</para>

@msg: 
@Returns: 


<!-- ##### FUNCTION soup_message_set_uri ##### -->
<para>

</para>

@msg: 
@uri: 


<!-- ##### ENUM SoupMessageFlags ##### -->
<para>
Various flags that can be set on a #SoupMessage to alter its behavior.
</para>

@SOUP_MESSAGE_NO_REDIRECT: The session should not follow redirect
(3xx) responses received by this message.
@SOUP_MESSAGE_OVERWRITE_CHUNKS: Rather than building up the response
body in %response, each new chunk should overwrite the previous one.
(This can be used if you are connecting to the %got_chunk signal or
have installed a %SOUP_MESSAGE_BODY_CHUNK handler.)
@SOUP_MESSAGE_EXPECT_CONTINUE: This will cause an "Expect:
100-continue" header to be added to the outgoing request, giving the
server the opportunity to reject the message (eg, with a 401
Unauthorized) before the full request body is sent.

<!-- ##### FUNCTION soup_message_set_flags ##### -->
<para>

</para>

@msg: 
@flags: 


<!-- ##### FUNCTION soup_message_get_flags ##### -->
<para>

</para>

@msg: 
@Returns: 


<!-- ##### ENUM SoupHandlerPhase ##### -->
<para>
Indicates when a handler added with soup_message_add_handler() or the
like will be run.
</para>

@SOUP_HANDLER_POST_REQUEST: The handler should run immediately after
sending the request body
@SOUP_HANDLER_PRE_BODY: The handler should run before reading the
response body (after reading the headers).
@SOUP_HANDLER_BODY_CHUNK: The handler should run after every body
chunk is read. (See also %SOUP_MESSAGE_OVERWRITE_CHUNKS.)
@SOUP_HANDLER_POST_BODY: The handler should run after the entire
message body has been read.

<!-- ##### FUNCTION soup_message_add_handler ##### -->
<para>

</para>

@msg: 
@type: 
@handler_cb: 
@user_data: 


<!-- ##### FUNCTION soup_message_add_header_handler ##### -->
<para>

</para>

@msg: 
@header: 
@type: 
@Param4: 
@user_data: 


<!-- ##### FUNCTION soup_message_add_status_code_handler ##### -->
<para>

</para>

@msg: 
@status_code: 
@type: 
@Param4: 
@user_data: 


<!-- ##### FUNCTION soup_message_add_status_class_handler ##### -->
<para>

</para>

@msg: 
@status_class: 
@type: 
@Param4: 
@user_data: 


<!-- ##### FUNCTION soup_message_remove_handler ##### -->
<para>

</para>

@msg: 
@type: 
@Param3: 
@user_data: 


<!-- ##### FUNCTION soup_message_set_status ##### -->
<para>

</para>

@msg: 
@status_code: 


<!-- ##### FUNCTION soup_message_set_status_full ##### -->
<para>

</para>

@msg: 
@status_code: 
@reason_phrase: 


<!-- ##### FUNCTION soup_message_add_chunk ##### -->
<para>

</para>

@msg: 
@owner: 
@body: 
@length: 


<!-- ##### FUNCTION soup_message_add_final_chunk ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_pop_chunk ##### -->
<para>

</para>

@msg: 
@Returns: 


<!-- ##### FUNCTION soup_message_send_request ##### -->
<para>

</para>

@req: 
@sock: 
@via_proxy: 


<!-- ##### FUNCTION soup_message_read_request ##### -->
<para>

</para>

@req: 
@sock: 


<!-- ##### FUNCTION soup_message_io_pause ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_io_unpause ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_wrote_informational ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_wrote_headers ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_wrote_chunk ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_wrote_body ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_got_informational ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_got_headers ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_got_chunk ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_got_body ##### -->
<para>

</para>

@msg: 


<!-- ##### FUNCTION soup_message_finished ##### -->
<para>

</para>

@msg: 


