mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-05 09:11:25 +02:00
Updating RestfulService
docs to explain how to set cURL options
see #3108
This commit is contained in:
parent
d01083cfce
commit
bef913aeb9
@ -137,6 +137,51 @@ If you want to bypass error handling on your sub-classes you could define that i
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
### Setting cURL options
|
||||||
|
|
||||||
|
Restful service uses cURL to make requests. There are various settings that can be defined on the cURL
|
||||||
|
request (see http://www.php.net/manual/en/function.curl-setopt.php) via the curl_setopts function.
|
||||||
|
|
||||||
|
There are two ways to define these for `RestfulService`; they can be global settings or per request settings.
|
||||||
|
|
||||||
|
It is important to note that your cURL options will be applied LAST and so take preference over any default
|
||||||
|
values that `RestfulService` sets (such as `CURLOPT_RETURNTRANSFER`) so changing these options may result
|
||||||
|
in unexpected behaviour or broken functionality.
|
||||||
|
|
||||||
|
|
||||||
|
#### Global cURL settings
|
||||||
|
|
||||||
|
To set global cURL settings you can update the `RestfulService` config via the Config system or YAML.
|
||||||
|
|
||||||
|
Here is an example to increase the HTTP Timeout globally. Insert this in your `_config.php` file:
|
||||||
|
|
||||||
|
```php
|
||||||
|
Config::inst()->update('RestfulService', 'default_curl_options', array(
|
||||||
|
CURLOPT_DNS_CACHE_TIMEOUT => 3600,
|
||||||
|
CURLOPT_CONNECTTIMEOUT => 10,
|
||||||
|
));
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
#### Per request settings
|
||||||
|
|
||||||
|
When making a request using `RestfulService` one can also pass through an array of cURL options in the last
|
||||||
|
parameter in `RestfulService::request()`.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```php
|
||||||
|
|
||||||
|
//cURL options
|
||||||
|
$curlOptions = array(
|
||||||
|
CURLOPT_UNRESTRICTED_AUTH => true,
|
||||||
|
);
|
||||||
|
|
||||||
|
$service = new RestfulService('http://example.com/');
|
||||||
|
$service->request('service.json', 'GET', null, null, $curlOptions);
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
## Other Uses
|
## Other Uses
|
||||||
|
|
||||||
### How to use `[api:RestfulService]` to easily embed an RSS feed
|
### How to use `[api:RestfulService]` to easily embed an RSS feed
|
||||||
|
Loading…
Reference in New Issue
Block a user