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;
	}
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;
	}
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 ; }
Perform the request, returns the response code, headers and body.

@param 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)
Perform the request returns the response code headers and body .