## WebKitWebResource

WebKitWebResource — Represents a resource at the end of a URI

## Synopsis

    struct              WebKitWebResource;
    const gchar *       webkit_web_resource_get_uri         (WebKitWebResource *resource);
    WebKitURIResponse * webkit_web_resource_get_response    (WebKitWebResource *resource);
    void                webkit_web_resource_get_data        (WebKitWebResource *resource,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    guchar *            webkit_web_resource_get_data_finish (WebKitWebResource *resource,
                                                             GAsyncResult *result,
                                                             gsize *length,
                                                             GError **error);

## Object Hierarchy

      GObject
       +----WebKitWebResource

## Properties

      "response"                 WebKitURIResponse*    : Read
      "uri"                      gchar*                : Read

## Signals

      "failed"                                         : Run Last
      "finished"                                       : Run Last
      "received-data"                                  : Run Last
      "sent-request"                                   : Run Last

## Description

A WebKitWebResource encapsulates content for each resource at the end of a particular URI. For example, one WebKitWebResource will be created for each separate image and stylesheet when a page is loaded.

You can access the response and the URI for a given WebKitWebResource, using `webkit_web_resource_get_uri()` and `webkit_web_resource_get_response()`, as well as the raw data, using `webkit_web_resource_get_data()`.

## Details

### struct WebKitWebResource

    struct WebKitWebResource;

### webkit_web_resource_get_uri ()

    const gchar *       webkit_web_resource_get_uri         (WebKitWebResource *resource);

Returns the current active URI of `resource`. The active URI might change during a load operation:

1. When the resource load starts, the active URI is the requested URI

2. When the initial request is sent to the server, "sent-request" signal is emitted without a redirected response, the active URI is the URI of the request sent to the server.

3. In case of a server redirection, "sent-request" signal is emitted again with a redirected response, the active URI is the URI the request was redirected to.

4. When the response is received from the server, the active URI is the final one and it will not change again.

You can monitor the active URI by connecting to the notify::uri signal of `resource`.

`resource` : | a WebKitWebResource
Returns : | the current active URI of `resource`

### webkit_web_resource_get_response ()

    WebKitURIResponse * webkit_web_resource_get_response    (WebKitWebResource *resource);

Retrieves the WebKitURIResponse of the resource load operation. This method returns `NULL` if called before the response is received from the server. You can connect to notify::response signal to be notified when the response is received.

`resource` : | a WebKitWebResource
Returns : | the WebKitURIResponse, or `NULL` if the response hasn't been received yet. [transfer none]

### webkit_web_resource_get_data ()

    void                webkit_web_resource_get_data        (WebKitWebResource *resource,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Asynchronously get the raw data for `resource`.

When the operation is finished, `callback` will be called. You can then call `webkit_web_resource_get_data_finish()` to get the result of the operation.

`resource` : | a WebKitWebResource
`cancellable` : | a GCancellable or `NULL` to ignore. [allow-none]
`callback` : | a GAsyncReadyCallback to call when the request is satisfied. [scope async]
`user_data` : | the data to pass to callback function. [closure]

### webkit_web_resource_get_data_finish ()

    guchar *            webkit_web_resource_get_data_finish (WebKitWebResource *resource,
                                                             GAsyncResult *result,
                                                             gsize *length,
                                                             GError **error);

Finish an asynchronous operation started with `webkit_web_resource_get_data()`.

`resource` : | a WebKitWebResource
`result` : | a GAsyncResult
`length` : | return location for the length of the resource data. [out]
`error` : | return location for error or `NULL` to ignore
Returns : | a string with the data of `resource`, or `NULL` in case of error. if `length` is not `NULL`, the size of the data will be assigned to it. [transfer full]

## Property Details

### The `"response"` property

      "response"                 WebKitURIResponse*    : Read

The WebKitURIResponse associated with this resource.

### The `"uri"` property

      "uri"                      gchar*                : Read

The current active URI of the WebKitWebResource. See `webkit_web_resource_get_uri()` for more details.

Default value: NULL

## Signal Details

### The `"failed"` signal

    void                user_function                      (WebKitWebResource *resource,
                                                            gpointer           error,
                                                            gpointer           user_data)      : Run Last

This signal is emitted when an error occurs during the resource load operation.

`resource` : | the WebKitWebResource
`error` : | the GError that was triggered
`user_data` : | user data set when the signal handler was connected.

### The `"finished"` signal

    void                user_function                      (WebKitWebResource *resource,
                                                            gpointer           user_data)      : Run Last

This signal is emitted when the resource load finishes successfully or due to an error. In case of errors "failed" signal is emitted before this one.

`resource` : | the WebKitWebResource
`user_data` : | user data set when the signal handler was connected.

### The `"received-data"` signal

    void                user_function                      (WebKitWebResource *resource,
                                                            guint64            data_length,
                                                            gpointer           user_data)        : Run Last

This signal is emitted after response is received, every time new data has been received. It's useful to know the progress of the resource load operation.

`resource` : | the WebKitWebResource
`data_length` : | the length of data received in bytes
`user_data` : | user data set when the signal handler was connected.

### The `"sent-request"` signal

    void                user_function                      (WebKitWebResource *resource,
                                                            WebKitURIRequest  *request,
                                                            WebKitURIResponse *redirected_response,
                                                            gpointer           user_data)                : Run Last

This signal is emitted when `request` has been sent to the server. In case of a server redirection this signal is emitted again with the `request` argument containing the new request sent to the server due to the redirection and the `redirected_response` parameter containing the response received by the server for the initial request.

`resource` : | the WebKitWebResource
`request` : | a WebKitURIRequest
`redirected_response` : | a WebKitURIResponse, or `NULL`
`user_data` : | user data set when the signal handler was connected.