ne_get_status
Prev | neon API reference | Next

## Name

ne_get_status, ne_get_response_location, ne_get_response_retry_after — retrieve HTTP response properties

## Synopsis

    #include <ne_request.h>

``const ne_status *ne_get_status(`const ne_request *request`)`;`
``ne_uri *ne_get_response_location(`ne_request *request`)`;`
``time_t ne_get_response_retry_after(`ne_request *request`)`;`

## Description

The `ne_get_status` function returns a pointer to the HTTP status object giving the result of a request. The object returned only becomes valid once the request has been successfully dispatched (the return value of `ne_request_dispatch` or `ne_begin_request` was zero).

If the response includes a `Location` header, the `ne_get_response_location` function parses and resolves the URI-reference relative to the request target. If a fragment ("#fragment") is applicable to the request target, it can be passed as an argument to allow appropriate relative resolution.

The `ne_get_response_retry_after` function parses any `Retry-After` header included in the response. If the header value uses a relative time, it is interpreted relative to the time the function was invoked, rather than the time the response was received, so the function should be used directly after dispatching the request.

## Return value

`ne_get_status` returns a pointer to the HTTP status object giving the result of a request. This pointer is valid until the associated request object is destroyed.

`ne_get_response_location` returns a malloc-allocated ne_uri object, or NULL if either the URI in the Location header could not be parsed or the Location header was not present.

`ne_get_response_retry_after` returns a time_t value, or zero if either no Retry-After header was included or the header value could not be parsed.

## Examples

Display the response status code of applying the `HEAD` method to some resource.

    ne_request *req = ne_request_create(sess, "HEAD", "/foo/bar");
    if (ne_request_dispatch(req))
       /* handle errors... */
    else
       printf("Response status code was %d\n", ne_get_status(req)->code);
    ne_request_destroy(req);

## History

`ne_get_response_location` is available in neon 0.34.0 and later.

## See also

ne_status, ne_request_create

Prev | Up | Next
ne_get_error | Home | ne_has_support