## RestProxyCall RestProxyCall |

## Synopsis

                        RestProxyCall;
    #define             REST_PROXY_CALL_ERROR
    enum                RestProxyCallError;
    void                rest_proxy_call_set_method          (RestProxyCall *call,
                                                             const gchar *method);
    const char *        rest_proxy_call_get_method          (RestProxyCall *call);
    void                rest_proxy_call_set_function        (RestProxyCall *call,
                                                             const gchar *function);
    void                rest_proxy_call_add_header          (RestProxyCall *call,
                                                             const gchar *header,
                                                             const gchar *value);
    void                rest_proxy_call_add_headers         (RestProxyCall *call,
                                                             ...);
    void                rest_proxy_call_add_headers_from_valist
                                                            (RestProxyCall *call,
                                                             va_list headers);
    const gchar *       rest_proxy_call_lookup_header       (RestProxyCall *call,
                                                             const gchar *header);
    void                rest_proxy_call_remove_header       (RestProxyCall *call,
                                                             const gchar *header);
    void                rest_proxy_call_add_param           (RestProxyCall *call,
                                                             const gchar *name,
                                                             const gchar *value);
    void                rest_proxy_call_add_param_full      (RestProxyCall *call,
                                                             RestParam *param);
    void                rest_proxy_call_add_params          (RestProxyCall *call,
                                                             ...);
    void                rest_proxy_call_add_params_from_valist
                                                            (RestProxyCall *call,
                                                             va_list params);
    RestParam *         rest_proxy_call_lookup_param        (RestProxyCall *call,
                                                             const gchar *name);
    void                rest_proxy_call_remove_param        (RestProxyCall *call,
                                                             const gchar *name);
    RestParams *        rest_proxy_call_get_params          (RestProxyCall *call);
    gboolean            rest_proxy_call_run                 (RestProxyCall *call,
                                                             GMainLoop **loop,
                                                             GError **error);
    void                (*RestProxyCallAsyncCallback)       (RestProxyCall *call,
                                                             const GError *error,
                                                             GObject *weak_object,
                                                             gpointer userdata);
    gboolean            rest_proxy_call_async               (RestProxyCall *call,
                                                             RestProxyCallAsyncCallback callback,
                                                             GObject *weak_object,
                                                             gpointer userdata,
                                                             GError **error);
    gboolean            rest_proxy_call_cancel              (RestProxyCall *call);
    gboolean            rest_proxy_call_sync                (RestProxyCall *call,
                                                             GError **error_out);
    const gchar *       rest_proxy_call_lookup_response_header
                                                            (RestProxyCall *call,
                                                             const gchar *header);
    GHashTable *        rest_proxy_call_get_response_headers
                                                            (RestProxyCall *call);
    goffset             rest_proxy_call_get_payload_length  (RestProxyCall *call);
    const gchar *       rest_proxy_call_get_payload         (RestProxyCall *call);
    guint               rest_proxy_call_get_status_code     (RestProxyCall *call);
    const gchar *       rest_proxy_call_get_status_message  (RestProxyCall *call);

## Object Hierarchy

      GObject
       +----RestProxyCall
             +----FlickrProxyCall
             +----LastfmProxyCall
             +----OAuth2ProxyCall
             +----OAuthProxyCall

## Properties

      "proxy"                    RestProxy*            : Read / Write / Construct Only

## Description

## Details

### RestProxyCall

    typedef struct _RestProxyCall RestProxyCall;

RestProxyCall has no publicly available members.

### REST_PROXY_CALL_ERROR

    #define REST_PROXY_CALL_ERROR rest_proxy_call_error_quark ()

### enum RestProxyCallError

    typedef enum {
      REST_PROXY_CALL_FAILED
    } RestProxyCallError;

Error domain used when returning errors from RestProxyCall.

`REST_PROXY_CALL_FAILED` | the method call failed

### rest_proxy_call_set_method ()

    void                rest_proxy_call_set_method          (RestProxyCall *call,
                                                             const gchar *method);

Set the HTTP method to use when making the call, for example GET or POST.

`call` : | The RestProxyCall
`method` : | The HTTP method to use

### rest_proxy_call_get_method ()

    const char *        rest_proxy_call_get_method          (RestProxyCall *call);

Get the HTTP method to use when making the call, for example GET or POST.

`call` : | The RestProxyCall

### rest_proxy_call_set_function ()

    void                rest_proxy_call_set_function        (RestProxyCall *call,
                                                             const gchar *function);

Set the REST "function" to call on the proxy. This is appended to the URL, so that for example a proxy with the URL `http://www.example.com/` and the function `test` would actually access the URL `http://www.example.com/test`

`call` : | The RestProxyCall
`function` : | The function to call

### rest_proxy_call_add_header ()

    void                rest_proxy_call_add_header          (RestProxyCall *call,
                                                             const gchar *header,
                                                             const gchar *value);

Add a header called `header` with the value `value` to the call. If a header with this name already exists, the new value will replace the old.

`call` : | The RestProxyCall
`header` : | The name of the header to set
`value` : | The value of the header

### rest_proxy_call_add_headers ()

    void                rest_proxy_call_add_headers         (RestProxyCall *call,
                                                             ...);

Add the specified header name and value pairs to the call. If a header already exists, the new value will replace the old.

`call` : | The RestProxyCall
`Varargs` : | Header name and value pairs, followed by `NULL`.

### rest_proxy_call_add_headers_from_valist ()

    void                rest_proxy_call_add_headers_from_valist
                                                            (RestProxyCall *call,
                                                             va_list headers);

Add the specified header name and value pairs to the call. If a header already exists, the new value will replace the old.

`call` : | The RestProxyCall
`headers` : | Header name and value pairs, followed by `NULL`.

### rest_proxy_call_lookup_header ()

    const gchar *       rest_proxy_call_lookup_header       (RestProxyCall *call,
                                                             const gchar *header);

Get the value of the header called `header`.

`call` : | The RestProxyCall
`header` : | The header name
Returns : | The header value, or `NULL` if it does not exist. This string is owned by the RestProxyCall and should not be freed.

### rest_proxy_call_remove_header ()

    void                rest_proxy_call_remove_header       (RestProxyCall *call,
                                                             const gchar *header);

Remove the header named `header` from the call.

`call` : | The RestProxyCall
`header` : | The header name

### rest_proxy_call_add_param ()

    void                rest_proxy_call_add_param           (RestProxyCall *call,
                                                             const gchar *name,
                                                             const gchar *value);

Add a query parameter called `param` with the string value `value` to the call. If a parameter with this name already exists, the new value will replace the old.

`call` : | The RestProxyCall
`name` : | The name of the parameter to set
`value` : | The value of the parameter

### rest_proxy_call_add_param_full ()

    void                rest_proxy_call_add_param_full      (RestProxyCall *call,
                                                             RestParam *param);

### rest_proxy_call_add_params ()

    void                rest_proxy_call_add_params          (RestProxyCall *call,
                                                             ...);

Add the specified parameter name and value pairs to the call. If a parameter already exists, the new value will replace the old.

`call` : | The RestProxyCall
`Varargs` : | Parameter name and value pairs, followed by `NULL`.

### rest_proxy_call_add_params_from_valist ()

    void                rest_proxy_call_add_params_from_valist
                                                            (RestProxyCall *call,
                                                             va_list params);

Add the specified parameter name and value pairs to the call. If a parameter already exists, the new value will replace the old.

`call` : | The RestProxyCall
`params` : | Parameter name and value pairs, followed by `NULL`.

### rest_proxy_call_lookup_param ()

    RestParam *         rest_proxy_call_lookup_param        (RestProxyCall *call,
                                                             const gchar *name);

Get the value of the parameter called `name`.

`call` : | The RestProxyCall
`name` : | The paramter name
Returns : | The parameter value, or `NULL` if it does not exist. This string is owned by the RestProxyCall and should not be freed.

### rest_proxy_call_remove_param ()

    void                rest_proxy_call_remove_param        (RestProxyCall *call,
                                                             const gchar *name);

Remove the parameter named `name` from the call.

`call` : | The RestProxyCall
`name` : | The paramter name

### rest_proxy_call_get_params ()

    RestParams *        rest_proxy_call_get_params          (RestProxyCall *call);

Get the parameters as a GHashTable of parameter names to values. The caller should call `g_hash_table_unref()` when they have finished using it.

`call` : | The RestProxyCall
Returns : | A GHashTable.

### rest_proxy_call_run ()

    gboolean            rest_proxy_call_run                 (RestProxyCall *call,
                                                             GMainLoop **loop,
                                                             GError **error);

### RestProxyCallAsyncCallback ()

    void                (*RestProxyCallAsyncCallback)       (RestProxyCall *call,
                                                             const GError *error,
                                                             GObject *weak_object,
                                                             gpointer userdata);

### rest_proxy_call_async ()

    gboolean            rest_proxy_call_async               (RestProxyCall *call,
                                                             RestProxyCallAsyncCallback callback,
                                                             GObject *weak_object,
                                                             gpointer userdata,
                                                             GError **error);

### rest_proxy_call_cancel ()

    gboolean            rest_proxy_call_cancel              (RestProxyCall *call);

### rest_proxy_call_sync ()

    gboolean            rest_proxy_call_sync                (RestProxyCall *call,
                                                             GError **error_out);

### rest_proxy_call_lookup_response_header ()

    const gchar *       rest_proxy_call_lookup_response_header
                                                            (RestProxyCall *call,
                                                             const gchar *header);

Get the string value of the header `header` or `NULL` if that header is not present or there are no headers.

`call` : | The RestProxyCall
`header` : | The name of the header to lookup.

### rest_proxy_call_get_response_headers ()

    GHashTable *        rest_proxy_call_get_response_headers
                                                            (RestProxyCall *call);

`call` : | The RestProxyCall
Returns : | pointer to a hash table of headers. This hash table must not be changed. You should call `g_hash_table_unref()` when you have finished with it. [transfer container]

### rest_proxy_call_get_payload_length ()

    goffset             rest_proxy_call_get_payload_length  (RestProxyCall *call);

Get the length of the return payload.

`call` : | The RestProxyCall
Returns : | the length of the payload in bytes.

### rest_proxy_call_get_payload ()

    const gchar *       rest_proxy_call_get_payload         (RestProxyCall *call);

Get the return payload.

`call` : | The RestProxyCall
Returns : | A pointer to the payload. This is owned by RestProxyCall and should not be freed.

### rest_proxy_call_get_status_code ()

    guint               rest_proxy_call_get_status_code     (RestProxyCall *call);

Get the HTTP status code for the call.

`call` : | The RestProxyCall

### rest_proxy_call_get_status_message ()

    const gchar *       rest_proxy_call_get_status_message  (RestProxyCall *call);

Get the human-readable HTTP status message for the call.

`call` : | The RestProxyCall
Returns : | The status message. This string is owned by RestProxyCall and should not be freed.

## Property Details

### The `"proxy"` property

      "proxy"                    RestProxy*            : Read / Write / Construct Only

Proxy for this call.