## 便利なHTTPクライアントAPI 便利なHTTPクライアントAPI — HTTPクライアントとして動作するためのAPI。 |

## 概要

                        SoupCutClient;
    SoupCutClient *     soupcut_client_new                  (void);
    void                soupcut_client_set_base             (SoupCutClient *client,
                                                             const gchar *uri);
    guint               soupcut_client_send_message         (SoupCutClient *client,
                                                             SoupMessage *message);
    guint               soupcut_client_get                  (SoupCutClient *client,
                                                             const gchar *uri,
                                                             const gchar *first_query_name,
                                                             ...);
    guint               soupcut_client_get_n_messages       (SoupCutClient *client);
    SoupMessage *       soupcut_client_get_latest_message   (SoupCutClient *client);
    GMainContext *      soupcut_client_get_async_context    (SoupCutClient *client);

## オブジェクト階層

      GObject
       +----SoupCutClient

## プロパティ

      "async"                    gboolean              : Read / Write

## 説明

SoupCutClientオブジェクトはHTTPクライアントとして動作します。SoupCutClientは複数のリクエストやレスポンスを管理することができます。また、SoupCutClientに関連するアサーションのAPIも提供しています。

## 詳細

### SoupCutClient

    typedef struct _SoupCutClient SoupCutClient;

### soupcut_client_new ()

    SoupCutClient *     soupcut_client_new                  (void);

新たにSoupCutClientオブジェクトを生成して返します。

戻り値 : | SoupCutClientオブジェクト。

1.0.8から

### soupcut_client_set_base ()

    void                soupcut_client_set_base             (SoupCutClient *client,
                                                             const gchar *uri);

`client`のベースURIを`uri`に設定します。

`client` : | SoupCutClientオブジェクト。
`uri` : | ベースURIの文字列。

1.0.8から

### soupcut_client_send_message ()

    guint               soupcut_client_send_message         (SoupCutClient *client,
                                                             SoupMessage *message);

`client`を使って`message`を送信します。`client`は過去に送信した全てのSoupMessageの情報を保持しています。

`client` : | SoupCutClientオブジェクト。
`message` : | SoupMessageオブジェクト。
戻り値 : | レスポンスのステータスコード。

1.0.8から

### soupcut_client_get ()

    guint               soupcut_client_get                  (SoupCutClient *client,
                                                             const gchar *uri,
                                                             const gchar *first_query_name,
                                                             ...);

`uri`とクエリパラメータで指定されたURIにGETリクエストを送信します。もしも`client`のベースURIが`soupcut_client_set_base()`によって設定されていた場合は、URIはベースURIと`uri`を組み合わせたものとなります。そうでない場合は、`uri`は絶対URIである必要があります。

`client` : | SoupCutClientオブジェクト。
`uri` : | URI文字列。
`first_query_name` : | ひとつめのクエリパラメータの名前
`...` : | `first_query_name`から始まる、クエリパラメータの名前と値のペア。最後に`NULL`を指定しなければいけません。
戻り値 : | レスポンスのステータスコード。

1.0.8から

### soupcut_client_get_n_messages ()

    guint               soupcut_client_get_n_messages       (SoupCutClient *client);

`client`が送信した#SoupMessageの数。

`client` : | SoupCutClientオブジェクト。
戻り値 : | #SoupMessageの数。

1.0.8から

### soupcut_client_get_latest_message ()

    SoupMessage *       soupcut_client_get_latest_message   (SoupCutClient *client);

`client`が最後に送信したSoupMessageオブジェクト。

`client` : | SoupCutClientオブジェクト。
戻り値 : | 最後に送信されたSoupMessageオブジェクト。

1.0.8から

### soupcut_client_get_async_context ()

    GMainContext *      soupcut_client_get_async_context    (SoupCutClient *client);

`client`の非同期コンテキスト。

`client` : | SoupCutClientオブジェクト。
戻り値 : | `client`のGMainContext。`NULL`が返る可能性があります。

1.0.8から

## プロパティ詳細

### `"async"`プロパティ

      "async"                    gboolean              : Read / Write

セッションが非同期の場合は真。

デフォルト値: FALSE

## 参考

libsoupを使ったHTTPクライアント・サーバ用の検証