本文整理汇总了C++中soup_message_new_from_uri函数的典型用法代码示例。如果您正苦于以下问题:C++ soup_message_new_from_uri函数的具体用法?C++ soup_message_new_from_uri怎么用?C++ soup_message_new_from_uri使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了soup_message_new_from_uri函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: soup_form_request_for_data
static SoupMessage *
soup_form_request_for_data (const char *method, const char *uri_string,
char *form_data)
{
SoupMessage *msg;
SoupURI *uri;
uri = soup_uri_new (uri_string);
if (!uri)
return NULL;
if (!strcmp (method, "GET")) {
g_free (uri->query);
uri->query = form_data;
msg = soup_message_new_from_uri (method, uri);
} else if (!strcmp (method, "POST") || !strcmp (method, "PUT")) {
msg = soup_message_new_from_uri (method, uri);
soup_message_set_request (
msg, SOUP_FORM_MIME_TYPE_URLENCODED,
SOUP_MEMORY_TAKE,
form_data, strlen (form_data));
} else {
g_warning ("invalid method passed to soup_form_request_new");
g_free (form_data);
/* Don't crash */
msg = soup_message_new_from_uri (method, uri);
}
soup_uri_free (uri);
return msg;
}
开发者ID:DrGore,项目名称:libsoup,代码行数:34,代码来源:soup-form.c
示例2: do_content_length_framing_test
static void
do_content_length_framing_test (void)
{
SoupSession *session;
SoupMessage *msg;
SoupURI *request_uri;
goffset declared_length;
debug_printf (1, "\nInvalid Content-Length framing tests\n");
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
debug_printf (1, " Content-Length larger than message body length\n");
request_uri = soup_uri_new_with_base (base_uri, "/content-length/long");
msg = soup_message_new_from_uri ("GET", request_uri);
soup_session_send_message (session, msg);
if (msg->status_code != SOUP_STATUS_OK) {
debug_printf (1, " Unexpected response: %d %s\n",
msg->status_code, msg->reason_phrase);
errors++;
} else {
declared_length = soup_message_headers_get_content_length (msg->response_headers);
debug_printf (2, " Content-Length: %lu, body: %s\n",
(gulong)declared_length, msg->response_body->data);
if (msg->response_body->length >= declared_length) {
debug_printf (1, " Body length %lu >= declared length %lu\n",
(gulong)msg->response_body->length,
(gulong)declared_length);
errors++;
}
}
soup_uri_free (request_uri);
g_object_unref (msg);
debug_printf (1, " Server claims 'Connection: close' but doesn't\n");
request_uri = soup_uri_new_with_base (base_uri, "/content-length/noclose");
msg = soup_message_new_from_uri ("GET", request_uri);
soup_session_send_message (session, msg);
if (msg->status_code != SOUP_STATUS_OK) {
debug_printf (1, " Unexpected response: %d %s\n",
msg->status_code, msg->reason_phrase);
errors++;
} else {
declared_length = soup_message_headers_get_content_length (msg->response_headers);
debug_printf (2, " Content-Length: %lu, body: %s\n",
(gulong)declared_length, msg->response_body->data);
if (msg->response_body->length != declared_length) {
debug_printf (1, " Body length %lu != declared length %lu\n",
(gulong)msg->response_body->length,
(gulong)declared_length);
errors++;
}
}
soup_uri_free (request_uri);
g_object_unref (msg);
soup_test_session_abort_unref (session);
}
开发者ID:NEVERMOR,项目名称:libsoup,代码行数:58,代码来源:connection-test.c
示例3: do_cookies_accept_policy_test
static void
do_cookies_accept_policy_test (void)
{
SoupSession *session;
SoupMessage *msg;
SoupURI *uri;
SoupCookieJar *jar;
GSList *l, *p;
int i;
debug_printf (1, "SoupCookieJarAcceptPolicy test\n");
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
soup_session_add_feature_by_type (session, SOUP_TYPE_COOKIE_JAR);
jar = SOUP_COOKIE_JAR (soup_session_get_feature (session, SOUP_TYPE_COOKIE_JAR));
for (i = 0; i < G_N_ELEMENTS (validResults); i++) {
soup_cookie_jar_set_accept_policy (jar, validResults[i].policy);
uri = soup_uri_new_with_base (first_party_uri, "/index.html");
msg = soup_message_new_from_uri ("GET", uri);
soup_message_set_first_party (msg, first_party_uri);
soup_session_send_message (session, msg);
soup_uri_free (uri);
g_object_unref (msg);
/* We can't use two servers due to limitations in
* test_server, so let's swap first and third party here
* to simulate a cookie coming from a third party.
*/
uri = soup_uri_new_with_base (first_party_uri, "/foo.jpg");
msg = soup_message_new_from_uri ("GET", uri);
soup_message_set_first_party (msg, third_party_uri);
soup_session_send_message (session, msg);
soup_uri_free (uri);
g_object_unref (msg);
l = soup_cookie_jar_all_cookies (jar);
if (g_slist_length (l) < validResults[i].n_cookies) {
debug_printf (1, " accepted less cookies than it should have\n");
errors++;
} else if (g_slist_length (l) > validResults[i].n_cookies) {
debug_printf (1, " accepted more cookies than it should have\n");
errors++;
}
for (p = l; p; p = p->next) {
soup_cookie_jar_delete_cookie (jar, p->data);
soup_cookie_free (p->data);
}
g_slist_free (l);
}
soup_test_session_abort_unref (session);
}
开发者ID:DrGore,项目名称:libsoup,代码行数:56,代码来源:cookies-test.c
示例4: do_timeout_test_for_session
static void
do_timeout_test_for_session (SoupSession *session)
{
SoupMessage *msg;
SoupSocket *sockets[4] = { NULL, NULL, NULL, NULL };
SoupURI *timeout_uri;
int i;
g_signal_connect (session, "request-started",
G_CALLBACK (request_started_socket_collector),
&sockets);
debug_printf (1, " First message\n");
timeout_uri = soup_uri_new_with_base (base_uri, "/timeout-persistent");
msg = soup_message_new_from_uri ("GET", timeout_uri);
soup_uri_free (timeout_uri);
soup_session_send_message (session, msg);
if (msg->status_code != SOUP_STATUS_OK) {
debug_printf (1, " Unexpected response: %d %s\n",
msg->status_code, msg->reason_phrase);
errors++;
}
if (sockets[1]) {
debug_printf (1, " Message was retried??\n");
errors++;
sockets[1] = sockets[2] = sockets[3] = NULL;
}
g_object_unref (msg);
debug_printf (1, " Second message\n");
msg = soup_message_new_from_uri ("GET", base_uri);
soup_session_send_message (session, msg);
if (msg->status_code != SOUP_STATUS_OK) {
debug_printf (1, " Unexpected response: %d %s\n",
msg->status_code, msg->reason_phrase);
errors++;
}
if (sockets[1] != sockets[0]) {
debug_printf (1, " Message was not retried on existing connection\n");
errors++;
} else if (!sockets[2]) {
debug_printf (1, " Message was not retried after disconnect\n");
errors++;
} else if (sockets[2] == sockets[1]) {
debug_printf (1, " Message was retried on closed connection??\n");
errors++;
} else if (sockets[3]) {
debug_printf (1, " Message was retried again??\n");
errors++;
}
g_object_unref (msg);
for (i = 0; sockets[i]; i++)
g_object_unref (sockets[i]);
}
开发者ID:NEVERMOR,项目名称:libsoup,代码行数:55,代码来源:connection-test.c
示例5: do_ipv6_test
static void
do_ipv6_test (void)
{
SoupServer *ipv6_server;
SoupURI *ipv6_uri;
SoupAddress *ipv6_addr;
SoupSession *session;
SoupMessage *msg;
debug_printf (1, "\nIPv6 server test\n");
ipv6_addr = soup_address_new ("::1", SOUP_ADDRESS_ANY_PORT);
soup_address_resolve_sync (ipv6_addr, NULL);
ipv6_server = soup_server_new (SOUP_SERVER_INTERFACE, ipv6_addr,
NULL);
g_object_unref (ipv6_addr);
soup_server_add_handler (ipv6_server, NULL, ipv6_server_callback, NULL, NULL);
soup_server_run_async (ipv6_server);
ipv6_uri = soup_uri_new ("http://[::1]/");
soup_uri_set_port (ipv6_uri, soup_server_get_port (ipv6_server));
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
debug_printf (1, " HTTP/1.1\n");
msg = soup_message_new_from_uri ("GET", ipv6_uri);
soup_session_send_message (session, msg);
if (!SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
debug_printf (1, " request failed: %d %s\n",
msg->status_code, msg->reason_phrase);
errors++;
}
g_object_unref (msg);
debug_printf (1, " HTTP/1.0\n");
msg = soup_message_new_from_uri ("GET", ipv6_uri);
soup_message_set_http_version (msg, SOUP_HTTP_1_0);
soup_session_send_message (session, msg);
if (!SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
debug_printf (1, " request failed: %d %s\n",
msg->status_code, msg->reason_phrase);
errors++;
}
g_object_unref (msg);
soup_uri_free (ipv6_uri);
soup_test_session_abort_unref (session);
soup_test_server_quit_unref (ipv6_server);
}
开发者ID:Kharif,项目名称:libsoup,代码行数:49,代码来源:misc-test.c
示例6: download_file
static GBytes *
download_file (SoupURI *uri)
{
g_autoptr(GBytes) contents = NULL;
if (soup_uri_get_scheme (uri) == SOUP_URI_SCHEME_FILE)
{
g_autoptr(GFile) file = g_file_new_for_path (soup_uri_get_path (uri));
eos_updater_read_file_to_bytes (file, NULL, &contents, NULL);
}
else
{
g_autoptr(SoupSession) soup = soup_session_new ();
g_autoptr(SoupMessage) msg = soup_message_new_from_uri ("GET", uri);
guint status = soup_session_send_message (soup, msg);
if (SOUP_STATUS_IS_SUCCESSFUL (status))
g_object_get (msg,
SOUP_MESSAGE_RESPONSE_BODY_DATA, &contents,
NULL);
}
return g_steal_pointer (&contents);
}
开发者ID:kinvolk,项目名称:eos-updater,代码行数:25,代码来源:eos-updater-poll-common.c
示例7: impl_start
static void
impl_start (RBPodcastSearch *bsearch, const char *text, int max_results)
{
SoupURI *uri;
SoupMessage *message;
char *limit;
RBPodcastSearchMiroGuide *search = RB_PODCAST_SEARCH_MIROGUIDE (bsearch);
search->session = soup_session_async_new_with_options (SOUP_SESSION_ADD_FEATURE_BY_TYPE,
SOUP_TYPE_PROXY_RESOLVER_DEFAULT,
NULL);
uri = soup_uri_new (MIROGUIDE_SEARCH_URI);
limit = g_strdup_printf ("%d", max_results);
soup_uri_set_query_from_fields (uri,
"filter", "audio",
"filter_value", "1",
"filter", "name",
"filter_value", text,
"sort", "popular", /* hmm */
"limit", limit,
"datatype", "json",
NULL);
g_free (limit);
message = soup_message_new_from_uri (SOUP_METHOD_GET, uri);
soup_uri_free (uri);
soup_session_queue_message (search->session, message, (SoupSessionCallback) search_response_cb, search);
}
开发者ID:arnaudlecam,项目名称:rhythmbox,代码行数:30,代码来源:rb-podcast-search-miroguide.c
示例8: force_io_streams_init
static void
force_io_streams_init (void)
{
SoupServer *server;
SoupSession *session;
guint port;
SoupURI *base_uri;
SoupMessage *msg;
/* Poke libsoup enough to cause SoupBodyInputStream and
* SoupBodyOutputStream to get defined, so we can find them
* via g_type_from_name() later.
*/
server = soup_test_server_new (TRUE);
port = soup_server_get_port (server);
base_uri = soup_uri_new ("http://127.0.0.1");
soup_uri_set_port (base_uri, port);
session = soup_test_session_new (SOUP_TYPE_SESSION, NULL);
msg = soup_message_new_from_uri ("POST", base_uri);
soup_session_send_message (session, msg);
g_object_unref (msg);
soup_test_session_abort_unref (session);
soup_uri_free (base_uri);
soup_test_server_quit_unref (server);
}
开发者ID:UIKit0,项目名称:libsoup,代码行数:29,代码来源:chunk-io-test.c
示例9: run_check
static gboolean
run_check (gpointer user_data)
{
NMConnectivity *self = NM_CONNECTIVITY (user_data);
NMConnectivityPrivate *priv;
SoupURI *soup_uri;
SoupMessage *msg;
g_return_val_if_fail (NM_IS_CONNECTIVITY (self), FALSE);
priv = NM_CONNECTIVITY_GET_PRIVATE (self);
/* check given url async */
soup_uri = soup_uri_new (priv->uri);
if (soup_uri && SOUP_URI_VALID_FOR_HTTP (soup_uri)) {
msg = soup_message_new_from_uri ("GET", soup_uri);
soup_message_set_flags (msg, SOUP_MESSAGE_NO_REDIRECT);
soup_session_queue_message (priv->soup_session,
msg,
nm_connectivity_check_cb,
self);
priv->running = TRUE;
g_object_notify (G_OBJECT (self), NM_CONNECTIVITY_RUNNING);
nm_log_dbg (LOGD_CORE, "Connectivity check with uri '%s' started.", priv->uri);
} else
nm_log_err (LOGD_CORE, "Invalid uri '%s' for connectivity check.", priv->uri);
if (soup_uri)
soup_uri_free (soup_uri);
return TRUE; /* keep firing */
}
开发者ID:vzupanovic,项目名称:projekt,代码行数:32,代码来源:nm-connectivity.c
示例10: do_aliases_test_for_session
static void
do_aliases_test_for_session (SoupSession *session,
const char *redirect_protocol)
{
SoupMessage *msg;
SoupURI *uri;
const char *redirected_protocol;
uri = soup_uri_new_with_base (base_uri, "/alias-redirect");
msg = soup_message_new_from_uri ("GET", uri);
if (redirect_protocol)
soup_message_headers_append (msg->request_headers, "X-Redirect-Protocol", redirect_protocol);
soup_uri_free (uri);
soup_session_send_message (session, msg);
redirected_protocol = soup_message_headers_get_one (msg->response_headers, "X-Redirected-Protocol");
if (g_strcmp0 (redirect_protocol, redirected_protocol)) {
debug_printf (1, " redirect went to %s, should have gone to %s!\n",
redirected_protocol ? redirected_protocol : "(none)",
redirect_protocol ? redirect_protocol : "(none)");
errors++;
} else if (redirect_protocol && !SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
debug_printf (1, " msg failed? (%d %s)\n",
msg->status_code, msg->reason_phrase);
errors++;
} else if (!redirect_protocol && SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
debug_printf (1, " msg succeeded? (%d %s)\n",
msg->status_code, msg->reason_phrase);
errors++;
}
g_object_unref (msg);
}
开发者ID:Kharif,项目名称:libsoup,代码行数:34,代码来源:misc-test.c
示例11: do_idle_on_dispose_test
static void
do_idle_on_dispose_test (void)
{
SoupSession *session;
SoupMessage *msg;
GMainContext *async_context;
debug_printf (1, "\nTesting SoupSessionAsync dispose behavior\n");
async_context = g_main_context_new ();
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC,
SOUP_SESSION_ASYNC_CONTEXT, async_context,
NULL);
msg = soup_message_new_from_uri ("GET", base_uri);
soup_session_send_message (session, msg);
g_object_unref (msg);
while (g_main_context_iteration (async_context, FALSE))
;
g_object_run_dispose (G_OBJECT (session));
if (g_main_context_iteration (async_context, FALSE)) {
debug_printf (1, " idle was queued!\n");
errors++;
}
g_object_unref (session);
g_main_context_unref (async_context);
}
开发者ID:Kharif,项目名称:libsoup,代码行数:31,代码来源:misc-test.c
示例12: do_dot_dot_test
static void
do_dot_dot_test (void)
{
SoupSession *session;
SoupMessage *msg;
SoupURI *uri;
debug_printf (1, "\n'..' smuggling test\n");
session = soup_test_session_new (SOUP_TYPE_SESSION_SYNC, NULL);
uri = soup_uri_new_with_base (base_uri, "/..%2ftest");
msg = soup_message_new_from_uri ("GET", uri);
soup_uri_free (uri);
soup_session_send_message (session, msg);
if (msg->status_code != SOUP_STATUS_BAD_REQUEST) {
debug_printf (1, " FAILED: %d %s (expected Bad Request)\n",
msg->status_code, msg->reason_phrase);
errors++;
}
g_object_unref (msg);
soup_test_session_abort_unref (session);
}
开发者ID:Kharif,项目名称:libsoup,代码行数:26,代码来源:misc-test.c
示例13: do_test
static void
do_test (SoupSession *session, SoupURI *base_uri, int n)
{
SoupURI *uri;
SoupMessage *msg;
TestRequest *req;
debug_printf (1, "%2d. %s %s\n", n + 1,
tests[n].requests[0].method,
tests[n].requests[0].path);
uri = soup_uri_new_with_base (base_uri, tests[n].requests[0].path);
msg = soup_message_new_from_uri (tests[n].requests[0].method, uri);
soup_uri_free (uri);
if (msg->method == SOUP_METHOD_POST) {
soup_message_set_request (msg, "text/plain",
SOUP_MEMORY_STATIC,
"post body",
strlen ("post body"));
}
req = &tests[n].requests[0];
g_signal_connect (msg, "got_headers",
G_CALLBACK (got_headers), &req);
g_signal_connect (msg, "restarted",
G_CALLBACK (restarted), &req);
soup_session_send_message (session, msg);
g_object_unref (msg);
debug_printf (2, "\n");
}
开发者ID:gcorvala,项目名称:gsoc-2009,代码行数:32,代码来源:redirect-test.c
示例14: do_non_persistent_test_for_session
static void
do_non_persistent_test_for_session (SoupSession *session)
{
SoupMessage *msg;
SoupSocket *socket = NULL;
loop = g_main_loop_new (NULL, FALSE);
g_signal_connect (session, "request-started",
G_CALLBACK (np_request_started),
&socket);
g_signal_connect (session, "request-unqueued",
G_CALLBACK (np_request_unqueued),
&socket);
msg = soup_message_new_from_uri ("GET", base_uri);
soup_message_headers_append (msg->request_headers, "Connection", "close");
g_object_ref (msg);
soup_session_queue_message (session, msg, NULL, NULL);
g_main_loop_run (loop);
g_main_loop_unref (loop);
if (msg->status_code != SOUP_STATUS_OK) {
debug_printf (1, " Unexpected response: %d %s\n",
msg->status_code, msg->reason_phrase);
errors++;
}
g_object_unref (msg);
g_object_unref (socket);
}
开发者ID:NEVERMOR,项目名称:libsoup,代码行数:30,代码来源:connection-test.c
示例15: do_large_chunk_test
static void
do_large_chunk_test (SoupSession *session, SoupURI *base_uri)
{
SoupMessage *msg;
char *buf_data;
int i;
LargeChunkData lcd;
debug_printf (1, "PUT w/ large chunk\n");
msg = soup_message_new_from_uri ("PUT", base_uri);
buf_data = g_malloc0 (LARGE_CHUNK_SIZE);
for (i = 0; i < LARGE_CHUNK_SIZE; i++)
buf_data[i] = i & 0xFF;
lcd.buf = soup_buffer_new (SOUP_MEMORY_TAKE, buf_data, LARGE_CHUNK_SIZE);
lcd.offset = 0;
soup_message_body_append_buffer (msg->request_body, lcd.buf);
soup_message_body_set_accumulate (msg->request_body, FALSE);
g_signal_connect (msg, "wrote_body_data",
G_CALLBACK (large_wrote_body_data), &lcd);
soup_session_send_message (session, msg);
if (!SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
debug_printf (1, " message failed: %d %s\n",
msg->status_code, msg->reason_phrase);
errors++;
}
soup_buffer_free (lcd.buf);
g_object_unref (msg);
}
开发者ID:tizenorg,项目名称:framework.connectivity.libsoup2.4,代码行数:33,代码来源:chunk-test.c
示例16: impl_start
static void
impl_start (RBPodcastSearch *bsearch, const char *text, int max_results)
{
SoupURI *uri;
SoupMessage *message;
char *limit;
RBPodcastSearchITunes *search = RB_PODCAST_SEARCH_ITUNES (bsearch);
search->session = soup_session_async_new_with_options (SOUP_SESSION_ADD_FEATURE_BY_TYPE,
SOUP_TYPE_PROXY_RESOLVER_DEFAULT,
NULL);
uri = soup_uri_new (ITUNES_SEARCH_URI);
limit = g_strdup_printf ("%d", max_results);
soup_uri_set_query_from_fields (uri,
"term", text,
"media", "podcast",
"entity", "podcast",
"limit", limit,
"version", "2",
"output", "json",
NULL);
g_free (limit);
message = soup_message_new_from_uri (SOUP_METHOD_GET, uri);
soup_uri_free (uri);
soup_session_queue_message (search->session, message, (SoupSessionCallback) search_response_cb, search);
}
开发者ID:arnaudlecam,项目名称:rhythmbox,代码行数:29,代码来源:rb-podcast-search-itunes.c
示例17: do_proxy_fragment_test
static void
do_proxy_fragment_test (SoupURI *base_uri)
{
SoupSession *session;
SoupURI *proxy_uri, *req_uri;
SoupMessage *msg;
debug_printf (1, "\nTesting request with fragment via proxy\n");
proxy_uri = soup_uri_new (proxies[SIMPLE_PROXY]);
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC,
SOUP_SESSION_PROXY_URI, proxy_uri,
NULL);
soup_uri_free (proxy_uri);
req_uri = soup_uri_new_with_base (base_uri, "/#foo");
msg = soup_message_new_from_uri (SOUP_METHOD_GET, req_uri);
soup_uri_free (req_uri);
soup_session_send_message (session, msg);
if (!SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
debug_printf (1, " unexpected status %d %s!\n",
msg->status_code, msg->reason_phrase);
errors++;
}
g_object_unref (msg);
soup_test_session_abort_unref (session);
}
开发者ID:NEVERMOR,项目名称:libsoup,代码行数:29,代码来源:proxy-test.c
示例18: try_query_info
static gboolean
try_query_info (GVfsBackend *backend,
GVfsJobQueryInfo *job,
const char *filename,
GFileQueryInfoFlags flags,
GFileInfo *info,
GFileAttributeMatcher *attribute_matcher)
{
SoupMessage *msg;
SoupURI *uri;
if (g_file_attribute_matcher_matches_only (attribute_matcher,
G_FILE_ATTRIBUTE_THUMBNAIL_PATH))
{
g_vfs_job_succeeded (G_VFS_JOB (job));
return TRUE;
}
uri = http_backend_get_mount_base (backend);
msg = soup_message_new_from_uri (SOUP_METHOD_HEAD, uri);
http_backend_queue_message (backend, msg, query_info_ready, job);
return TRUE;
}
开发者ID:GNOME,项目名称:gvfs,代码行数:25,代码来源:gvfsbackendhttp.c
示例19: do_non_idempotent_test_for_session
static void
do_non_idempotent_test_for_session (SoupSession *session)
{
SoupMessage *msg;
SoupSocket *sockets[4] = { NULL, NULL, NULL, NULL };
int i;
g_signal_connect (session, "request-started",
G_CALLBACK (request_started_socket_collector),
&sockets);
debug_printf (2, " GET\n");
msg = soup_message_new_from_uri ("GET", base_uri);
soup_session_send_message (session, msg);
if (msg->status_code != SOUP_STATUS_OK) {
debug_printf (1, " Unexpected response: %d %s\n",
msg->status_code, msg->reason_phrase);
errors++;
}
if (sockets[1]) {
debug_printf (1, " Message was retried??\n");
errors++;
sockets[1] = sockets[2] = sockets[3] = NULL;
}
g_object_unref (msg);
debug_printf (2, " POST\n");
msg = soup_message_new_from_uri ("POST", base_uri);
soup_session_send_message (session, msg);
if (msg->status_code != SOUP_STATUS_OK) {
debug_printf (1, " Unexpected response: %d %s\n",
msg->status_code, msg->reason_phrase);
errors++;
}
if (sockets[1] == sockets[0]) {
debug_printf (1, " Message was sent on existing connection!\n");
errors++;
}
if (sockets[2]) {
debug_printf (1, " Too many connections used...\n");
errors++;
}
g_object_unref (msg);
for (i = 0; sockets[i]; i++)
g_object_unref (sockets[i]);
}
开发者ID:NEVERMOR,项目名称:libsoup,代码行数:47,代码来源:connection-test.c
示例20: do_max_conns_test_for_session
static void
do_max_conns_test_for_session (SoupSession *session)
{
SoupMessage *msgs[TEST_CONNS];
int i;
max_conns_loop = g_main_loop_new (NULL, TRUE);
g_mutex_lock (&server_mutex);
g_signal_connect (session, "request-started",
G_CALLBACK (max_conns_request_started), NULL);
msgs_done = 0;
for (i = 0; i < TEST_CONNS; i++) {
msgs[i] = soup_message_new_from_uri ("GET", base_uri);
g_object_ref (msgs[i]);
soup_session_queue_message (session, msgs[i],
max_conns_message_complete, NULL);
}
g_main_loop_run (max_conns_loop);
if (msgs_done != MAX_CONNS) {
debug_printf (1, " Queued %d connections out of max %d?",
msgs_done, MAX_CONNS);
errors++;
}
g_signal_handlers_disconnect_by_func (session, max_conns_request_started, NULL);
msgs_done = 0;
g_idle_add (idle_start_server, NULL);
quit_loop_timeout = g_timeout_add (1000, quit_loop, NULL);
g_main_loop_run (max_conns_loop);
for (i = 0; i < TEST_CONNS; i++) {
if (!SOUP_STATUS_IS_SUCCESSFUL (msgs[i]->status_code)) {
debug_printf (1, " Message %d failed? %d %s\n",
i, msgs[i]->status_code,
msgs[i]->reason_phrase ? msgs[i]->reason_phrase : "-");
errors++;
}
}
if (msgs_done != TEST_CONNS) {
/* Clean up so we don't get a spurious "Leaked
* session" error.
*/
for (i = 0; i < TEST_CONNS; i++)
soup_session_cancel_message (session, msgs[i], SOUP_STATUS_CANCELLED);
g_main_loop_run (max_conns_loop);
}
g_main_loop_unref (max_conns_loop);
if (quit_loop_timeout)
g_source_remove (quit_loop_timeout);
for (i = 0; i < TEST_CONNS; i++)
g_object_unref (msgs[i]);
}
开发者ID:NEVERMOR,项目名称:libsoup,代码行数:58,代码来源:connection-test.c
注:本文中的soup_message_new_from_uri函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论