![]() |
![]() |
![]() |
libsoup Reference Manual | ![]() |
---|---|---|---|---|
typedef SoupMultipart; SoupMultipart* soup_multipart_new (const char *mime_type); SoupMultipart* soup_multipart_new_from_message (SoupMessageHeaders *headers, SoupMessageBody *body); void soup_multipart_free (SoupMultipart *multipart); int soup_multipart_get_length (SoupMultipart *multipart); gboolean soup_multipart_get_part (SoupMultipart *multipart, int part, SoupMessageHeaders **headers, SoupBuffer **body); void soup_multipart_append_part (SoupMultipart *multipart, SoupMessageHeaders *headers, SoupBuffer *body); void soup_multipart_append_form_string (SoupMultipart *multipart, const char *control_name, const char *data); void soup_multipart_append_form_file (SoupMultipart *multipart, const char *control_name, const char *filename, const char *content_type, SoupBuffer *body); void soup_multipart_to_message (SoupMultipart *multipart, SoupMessageHeaders *dest_headers, SoupMessageBody *dest_body);
typedef struct SoupMultipart SoupMultipart;
Represents a multipart HTTP message body, parsed according to the
syntax of RFC 2046. Of particular interest to HTTP are
multipart/byte-ranges
and
multipart/form-data
.
Although the headers of a SoupMultipart body part will contain the full headers from that body part, libsoup does not interpret them according to MIME rules. For example, each body part is assumed to have "binary" Content-Transfer-Encoding, even if its headers explicitly state otherwise. In other words, don't try to use SoupMultipart for handling real MIME multiparts.
Since 2.26
SoupMultipart* soup_multipart_new (const char *mime_type);
Creates a new empty SoupMultipart with a randomly-generated
boundary string. Note that mime_type
must be the full MIME type,
including "multipart/".
mime_type : |
the MIME type of the multipart to create. |
Returns : | a new empty SoupMultipart of the given mime_type
|
Since 2.26
SoupMultipart* soup_multipart_new_from_message (SoupMessageHeaders *headers, SoupMessageBody *body);
Parses headers
and body
to form a new SoupMultipart
headers : |
the headers of the HTTP message to parse |
body : |
the body of the HTTP message to parse |
Returns : | a new SoupMultipart (or NULL if the message couldn't
be parsed or wasn't multipart).
|
Since 2.26
void soup_multipart_free (SoupMultipart *multipart);
Frees multipart
multipart : |
a SoupMultipart |
Since 2.26
int soup_multipart_get_length (SoupMultipart *multipart);
Gets the number of body parts in multipart
multipart : |
a SoupMultipart |
Returns : | the number of body parts in multipart
|
Since 2.26
gboolean soup_multipart_get_part (SoupMultipart *multipart, int part, SoupMessageHeaders **headers, SoupBuffer **body);
Gets the indicated body part from multipart
.
multipart : |
a SoupMultipart |
part : |
the part number to get (counting from 0) |
headers : |
return location for the MIME part headers |
body : |
return location for the MIME part body |
Returns : | TRUE on success, FALSE if part is out of range (in
which case headers and body won't be set)
|
Since 2.26
void soup_multipart_append_part (SoupMultipart *multipart, SoupMessageHeaders *headers, SoupBuffer *body);
Adds a new MIME part to multipart
with the given headers and body.
(The multipart will make its own copies of headers
and body
, so
you should free your copies if you are not using them for anything
else.)
multipart : |
a SoupMultipart |
headers : |
the MIME part headers |
body : |
the MIME part body |
Since 2.26
void soup_multipart_append_form_string (SoupMultipart *multipart, const char *control_name, const char *data);
Adds a new MIME part containing data
to multipart
, using
"Content-Disposition: form-data", as per the HTML forms
specification. See soup_form_request_new_from_multipart()
for more
details.
multipart : |
a multipart (presumably of type "multipart/form-data") |
control_name : |
the name of the control associated with data
|
data : |
the body data |
Since 2.26
void soup_multipart_append_form_file (SoupMultipart *multipart, const char *control_name, const char *filename, const char *content_type, SoupBuffer *body);
Adds a new MIME part containing body
to multipart
, using
"Content-Disposition: form-data", as per the HTML forms
specification. See soup_form_request_new_from_multipart()
for more
details.
multipart : |
a multipart (presumably of type "multipart/form-data") |
control_name : |
the name of the control associated with this file |
filename : |
the name of the file, or NULL if not known
|
content_type : |
the MIME type of the file, or NULL if not known
|
body : |
the file data |
Since 2.26
void soup_multipart_to_message (SoupMultipart *multipart, SoupMessageHeaders *dest_headers, SoupMessageBody *dest_body);
Serializes multipart
to dest_headers
and dest_body
.
multipart : |
a SoupMultipart |
dest_headers : |
the headers of the HTTP message to serialize multipart to
|
dest_body : |
the body of the HTTP message to serialize multipart to
|
Since 2.26