function OAuthRequester::doRequest in Lingotek Translation 7.2
Same name and namespace in other branches
- 7.3 lib/oauth-php/library/OAuthRequester.php \OAuthRequester::doRequest()
* Perform the request, returns the response code, headers and body. * *
Parameters
int usr_id optional user id for which we make the request: * @param array curl_options optional extra options for curl request * @param array options options like name and token_ttl * @exception OAuthException2 when authentication not accepted * @exception OAuthException2 when signing was not possible * @return array (code=>int, headers=>array(), body=>string)
File
- lib/
oauth-php/ library/ OAuthRequester.php, line 96
Class
Code
function doRequest($usr_id = 0, $curl_options = array(), $options = array()) {
$name = isset($options['name']) ? $options['name'] : '';
if (isset($options['token_ttl'])) {
$this
->setParam('xoauth_token_ttl', intval($options['token_ttl']));
}
if (!empty($this->files)) {
// At the moment OAuth does not support multipart/form-data, so try to encode
// the supplied file (or data) as the request body and add a content-disposition header.
list($extra_headers, $body) = OAuthBodyContentDisposition::encodeBody($this->files);
$this
->setBody($body);
$curl_options = $this
->prepareCurlOptions($curl_options, $extra_headers);
}
$this
->sign($usr_id, null, $name);
$text = $this
->curl_raw($curl_options);
$result = $this
->curl_parse($text);
if ($result['code'] >= 400) {
throw new OAuthException2('Request failed with code ' . $result['code'] . ': ' . $result['body']);
}
// Record the token time to live for this server access token, immediate delete iff ttl <= 0
// Only done on a succesful request.
$token_ttl = $this
->getParam('xoauth_token_ttl', false);
if (is_numeric($token_ttl)) {
$this->store
->setServerTokenTtl($this
->getParam('oauth_consumer_key', true), $this
->getParam('oauth_token', true), $token_ttl);
}
return $result;
}