Optionalproperties: Partial<{ data: Uint8Array; length: number }>Appends length bytes from data to body.
This function is exactly equivalent to MessageBody.append with Soup.MemoryUse.TAKE as second argument; it exists mainly for convenience and simplifying language bindings.
data to append
Tags body as being complete.
Call this when using chunked encoding after you have appended the last chunk.
Fills in body's data field with a buffer containing all of the
data in body.
Adds an additional \0 byte not counted by body's
length field.
a GLib.Bytes containing the same data as body. (You must GLib.Bytes.unref this if you do not want it.)
Gets the accumulate flag on body.
See [method@MessageBody.set_accumulate. for details.
the accumulate flag for body.
Gets a GLib.Bytes containing data from body starting at offset.
The size of the returned chunk is unspecified. You can iterate through the entire body by first calling MessageBody.get_chunk with an offset of 0, and then on each successive call, increment the offset by the length of the previously-returned chunk.
If offset is greater than or equal to the total length of body,
then the return value depends on whether or not
MessageBody.complete has been called or not; if it has,
then MessageBody.get_chunk will return a 0-length chunk
(indicating the end of body). If it has not, then
MessageBody.get_chunk will return null (indicating that
body may still potentially have more data, but that data is not
currently available).
an offset
Handles the MessageBody part of receiving a chunk of data from the network.
Normally this means appending chunk to body, exactly as with
MessageBody.append_bytes, but if you have set body's accumulate
flag to false, then that will not happen.
This is a low-level method which you should not normally need to use.
a GLib.Bytes received from the network
Atomically increments the reference count of body by one.
the passed in Soup.MessageBody
Sets or clears the accumulate flag on body.
(The default value is true.) If set to false, body's data field will not
be filled in after the body is fully sent/received, and the chunks that make
up body may be discarded when they are no longer needed.
If you set the flag to false on the Message request_body of a
client-side message, it will block the accumulation of chunks into
body's data field, but it will not normally cause the chunks to
be discarded after being written like in the server-side
Message response_body case, because the request body needs to
be kept around in case the request needs to be sent a second time
due to redirection or authentication.
whether or not to accumulate body chunks in body
Deletes all of the data in body.
Atomically decrements the reference count of body by one.
When the reference count reaches zero, the resources allocated by
body are freed
Handles the MessageBody part of writing a chunk of data to the network.
Normally this is a no-op, but if you have set body's accumulate flag to
false, then this will cause chunk to be discarded to free up memory.
This is a low-level method which you should not need to use, and there are further restrictions on its proper use which are not documented here.
a GLib.Bytes returned from MessageBody.get_chunk
Staticnew
MessageBody represents the request or response body of a Message.
Note that while
lengthalways reflects the full length of the message body,datais normallynull, and will only be filled in after MessageBody.flatten is called. For client-side messages, this automatically happens for the response body after it has been fully read. Likewise, for server-side messages, the request body is automatically filled in after being read.As an added bonus, when
datais filled in, it is always terminated with a\0byte (which is not reflected inlength).