Class yii\httpclient\Request
Inheritance | yii\httpclient\Request » yii\httpclient\Message » yii\base\Component |
---|---|
Available since extension's version | 2.0 |
Source Code | https://github.com/yiisoft/yii2-httpclient/blob/master/src/Request.php |
Request represents HTTP request.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$client | yii\httpclient\Client | Owner client instance. | yii\httpclient\Message |
$content | string | Raw body. | yii\httpclient\Message |
$cookies | \yii\web\CookieCollection|\yii\web\Cookie[] | The cookie collection. | yii\httpclient\Message |
$data | mixed | Content data fields. | yii\httpclient\Message |
$format | string | Body format name. | yii\httpclient\Message |
$fullUrl | string | Full target URL. | yii\httpclient\Request |
$headers | \yii\web\HeaderCollection | The header collection. | yii\httpclient\Message |
$method | string | Request method. | yii\httpclient\Request |
$options | array | Request options. | yii\httpclient\Request |
$url | string|array | Target URL or URL parameters. | yii\httpclient\Request |
Public Methods
Method | Description | Defined By |
---|---|---|
__toString() | PHP magic method that returns the string representation of this object. | yii\httpclient\Message |
addContent() | Adds a content part for multi-part content request. | yii\httpclient\Request |
addCookies() | Adds more cookies to the already defined ones. | yii\httpclient\Message |
addData() | Adds data fields to the existing ones. | yii\httpclient\Request |
addFile() | Adds a file for upload as multi-part content. | yii\httpclient\Request |
addFileContent() | Adds a string as a file upload. | yii\httpclient\Request |
addHeaders() | Adds more headers to the already defined ones. | yii\httpclient\Message |
addOptions() | Adds more options to already defined ones. | yii\httpclient\Request |
afterSend() | This method is invoked right after this request is sent. | yii\httpclient\Request |
beforeSend() | This method is invoked right before this request is sent. | yii\httpclient\Request |
composeHeaderLines() | Composes raw header lines from $headers. | yii\httpclient\Request |
getContent() | Returns HTTP message raw content. | yii\httpclient\Message |
getCookies() | Returns the cookie collection. | yii\httpclient\Message |
getData() | Returns the data fields, parsed from raw content. | yii\httpclient\Message |
getFormat() | Returns body format. | yii\httpclient\Message |
getFullUrl() | Returns full target URL, including yii\httpclient\Client::$baseUrl as a string. | yii\httpclient\Request |
getHeaders() | Returns the header collection. | yii\httpclient\Message |
getMethod() | yii\httpclient\Request | |
getOptions() | yii\httpclient\Request | |
getOutputFile() | Gets the outputFile property | yii\httpclient\Request |
getUrl() | Returns target URL. | yii\httpclient\Request |
hasContent() | Checks if content with provided name exists | yii\httpclient\Message |
hasCookies() | Checks of HTTP message contains any cookie. | yii\httpclient\Message |
hasHeaders() | Checks of HTTP message contains any header. | yii\httpclient\Message |
prepare() | Prepares this request instance for sending. | yii\httpclient\Request |
responseTime() | Return the response time in seconds | yii\httpclient\Request |
send() | Sends this request. | yii\httpclient\Request |
setContent() | Sets the HTTP message raw content. | yii\httpclient\Message |
setCookies() | Sets the cookies associated with HTTP message. | yii\httpclient\Message |
setData() | Sets the data fields, which composes message content. | yii\httpclient\Request |
setFormat() | Sets body format. | yii\httpclient\Message |
setFullUrl() | Sets full target URL. | yii\httpclient\Request |
setHeaders() | Sets the HTTP headers associated with HTTP message. | yii\httpclient\Message |
setMethod() | yii\httpclient\Request | |
setOptions() | Following options are supported: - timeout: int, the maximum number of seconds to allow request to be executed. | yii\httpclient\Request |
setOutputFile() | Used with yii\httpclient\CurlTransport to set the file that the transfer should be written to | yii\httpclient\Request |
setUrl() | Sets target URL. | yii\httpclient\Request |
toString() | Returns string representation of this HTTP message. | yii\httpclient\Request |
Protected Methods
Method | Description | Defined By |
---|---|---|
defaultFormat() | Returns default format name. | yii\httpclient\Message |
Events
Event | Type | Description | Defined By |
---|---|---|---|
EVENT_AFTER_SEND | yii\httpclient\RequestEvent | An event raised right after request has been sent. | yii\httpclient\Request |
EVENT_BEFORE_SEND | yii\httpclient\RequestEvent | An event raised right before sending request. | yii\httpclient\Request |
Property Details
Method Details
Defined in: yii\httpclient\Message::__toString()
PHP magic method that returns the string representation of this object.
public string __toString ( ) | ||
return | string |
The string representation of this object. |
---|
public function __toString()
{
// __toString cannot throw exception
// use trigger_error to bypass this limitation
try {
return $this->toString();
} catch (\Exception $e) {
ErrorHandler::convertExceptionToError($e);
return '';
}
}
Adds a content part for multi-part content request.
public $this addContent ( $name, $content, $options = [] ) | ||
$name | string |
Part (form input) name. |
$content | string |
Content. |
$options | array |
Content part options, valid options are:
|
return | $this |
Self reference. |
---|
public function addContent($name, $content, $options = [])
{
$multiPartContent = $this->getContent();
if (!is_array($multiPartContent)) {
$multiPartContent = [];
}
$options['content'] = $content;
$alias = $this->generateContentAlias($name);
$this->addAliasToContentMap($name, $alias);
$multiPartContent[$alias] = $options;
$this->setContent($multiPartContent);
return $this;
}
Defined in: yii\httpclient\Message::addCookies()
Adds more cookies to the already defined ones.
public $this addCookies ( array $cookies ) | ||
$cookies | \yii\web\Cookie[]|array |
Additional cookies. |
return | $this |
Self reference. |
---|
public function addCookies(array $cookies)
{
$cookieCollection = $this->getCookies();
foreach ($cookies as $cookie) {
if (!is_object($cookie)) {
$cookie = new Cookie($cookie);
}
$cookieCollection->add($cookie);
}
return $this;
}
Adds data fields to the existing ones.
public $this addData ( $data ) | ||
$data | array |
Additional content data fields. |
return | $this |
Self reference. |
---|
public function addData($data)
{
if ($this->isPrepared) {
$this->setContent(null);
$this->isPrepared = false;
}
return parent::addData($data);
}
Adds a file for upload as multi-part content.
See also addContent().
public $this addFile ( $name, $fileName, $options = [] ) | ||
$name | string |
Part (form input) name |
$fileName | string |
Full name of the source file. |
$options | array |
Content part options, valid options are:
|
throws | \yii\base\InvalidConfigException |
---|
public function addFile($name, $fileName, $options = [])
{
$content = file_get_contents($fileName);
if (!isset($options['mimeType'])) {
$options['mimeType'] = FileHelper::getMimeType($fileName);
}
if (!isset($options['fileName'])) {
$options['fileName'] = basename($fileName);
}
return $this->addContent($name, $content, $options);
}
Adds a string as a file upload.
See also addContent().
public $this addFileContent ( $name, $content, $options = [] ) | ||
$name | string |
Part (form input) name |
$content | string |
File content. |
$options | array |
Content part options, valid options are:
|
public function addFileContent($name, $content, $options = [])
{
if (!isset($options['mimeType'])) {
$options['mimeType'] = 'application/octet-stream';
}
if (!isset($options['fileName'])) {
$options['fileName'] = $name . '.dat';
}
return $this->addContent($name, $content, $options);
}
Defined in: yii\httpclient\Message::addHeaders()
Adds more headers to the already defined ones.
public $this addHeaders ( array $headers ) | ||
$headers | array |
Additional headers in format: [headerName => headerValue] |
return | $this |
Self reference. |
---|
public function addHeaders(array $headers)
{
$headerCollection = $this->getHeaders();
foreach ($headers as $name => $value) {
$headerCollection->add($name, $value);
}
return $this;
}
Adds more options to already defined ones.
Please refer to setOptions() on how to specify options.
public $this addOptions ( array $options ) | ||
$options | array |
Additional options |
return | $this |
Self reference. |
---|
public function addOptions(array $options)
{
// `array_merge()` will produce invalid result for cURL options,
// while `ArrayHelper::merge()` is unable to override cURL options
foreach ($options as $key => $value) {
if (is_array($value) && isset($this->_options[$key])) {
$value = ArrayHelper::merge($this->_options[$key], $value);
}
$this->_options[$key] = $value;
}
return $this;
}
This method is invoked right after this request is sent.
The method will invoke yii\httpclient\Client::afterSend() and trigger the EVENT_AFTER_SEND event.
public void afterSend ( $response ) | ||
$response | yii\httpclient\Response |
Received response instance. |
public function afterSend($response)
{
$this->_timeElapsed = microtime(true)-$this->_startTime;
$this->client->afterSend($this, $response);
$event = new RequestEvent();
$event->request = $this;
$event->response = $response;
$this->trigger(self::EVENT_AFTER_SEND, $event);
}
This method is invoked right before this request is sent.
The method will invoke yii\httpclient\Client::beforeSend() and trigger the EVENT_BEFORE_SEND event.
public void beforeSend ( ) |
public function beforeSend()
{
$this->client->beforeSend($this);
$event = new RequestEvent();
$event->request = $this;
$this->trigger(self::EVENT_BEFORE_SEND, $event);
$this->_startTime = microtime(true);
}
Composes raw header lines from $headers.
Each line will be a string in format: 'header-name: value'.
public array composeHeaderLines ( ) | ||
return | array |
Raw header lines. |
---|
public function composeHeaderLines()
{
$headers = parent::composeHeaderLines();
if ($this->hasCookies()) {
$headers[] = $this->composeCookieHeader();
}
return $headers;
}
Defined in: yii\httpclient\Message::defaultFormat()
Returns default format name.
protected string defaultFormat ( ) | ||
return | string |
Default format name. |
---|
protected function defaultFormat()
{
return Client::FORMAT_URLENCODED;
}
Defined in: yii\httpclient\Message::getContent()
Returns HTTP message raw content.
public string getContent ( ) | ||
return | string |
Raw body. |
---|
public function getContent()
{
return $this->_content;
}
Defined in: yii\httpclient\Message::getCookies()
Returns the cookie collection.
The cookie collection contains the cookies associated with HTTP message.
public \yii\web\CookieCollection|\yii\web\Cookie[] getCookies ( ) | ||
return | \yii\web\CookieCollection|\yii\web\Cookie[] |
The cookie collection. |
---|
public function getCookies()
{
if (!is_object($this->_cookies)) {
$cookieCollection = new CookieCollection();
if (is_array($this->_cookies)) {
foreach ($this->_cookies as $cookie) {
if (!is_object($cookie)) {
$cookie = new Cookie($cookie);
}
$cookieCollection->add($cookie);
}
}
$this->_cookies = $cookieCollection;
}
return $this->_cookies;
}
Defined in: yii\httpclient\Message::getData()
Returns the data fields, parsed from raw content.
public mixed getData ( ) | ||
return | mixed |
Content data fields. |
---|
public function getData()
{
return $this->_data;
}
Defined in: yii\httpclient\Message::getFormat()
Returns body format.
public string getFormat ( ) | ||
return | string |
Body format name. |
---|
public function getFormat()
{
if ($this->_format === null) {
$this->_format = $this->defaultFormat();
}
return $this->_format;
}
Returns full target URL, including yii\httpclient\Client::$baseUrl as a string.
public string getFullUrl ( ) | ||
return | string |
Full target URL. |
---|
public function getFullUrl()
{
if ($this->_fullUrl === null) {
$this->_fullUrl = $this->createFullUrl($this->getUrl());
}
return $this->_fullUrl;
}
Defined in: yii\httpclient\Message::getHeaders()
Returns the header collection.
The header collection contains the HTTP headers associated with HTTP message.
public \yii\web\HeaderCollection getHeaders ( ) | ||
return | \yii\web\HeaderCollection |
The header collection |
---|
public function getHeaders()
{
if (!is_object($this->_headers)) {
$headerCollection = new HeaderCollection();
if (is_array($this->_headers)) {
foreach ($this->_headers as $name => $value) {
if (is_int($name)) {
// parse raw header :
$rawHeader = $value;
if (strpos($rawHeader, 'HTTP/') === 0) {
$parts = explode(' ', $rawHeader, 3);
$headerCollection->add('http-code', $parts[1]);
} elseif (($separatorPos = strpos($rawHeader, ':')) !== false) {
$name = strtolower(trim(substr($rawHeader, 0, $separatorPos)));
$value = trim(substr($rawHeader, $separatorPos + 1));
$headerCollection->add($name, $value);
} else {
$headerCollection->add('raw', $rawHeader);
}
} else {
$headerCollection->set($name, $value);
}
}
}
$this->_headers = $headerCollection;
}
return $this->_headers;
}
public string getMethod ( ) | ||
return | string |
Request method |
---|
public function getMethod()
{
return $this->_method;
}
public array getOptions ( ) | ||
return | array |
Request options. |
---|
public function getOptions()
{
return $this->_options;
}
Gets the outputFile property
public resource getOutputFile ( ) |
public function getOutputFile()
{
return $this->_outputFile;
}
Returns target URL.
public string|array getUrl ( ) | ||
return | string|array |
Target URL or URL parameters |
---|
public function getUrl()
{
return $this->_url;
}
Defined in: yii\httpclient\Message::hasContent()
Checks if content with provided name exists
public boolean hasContent ( $key ) | ||
$key |
String Name of the content parameter |
public function hasContent($key)
{
$content = $this->getContent();
return is_array($content) && isset($content[$key]);
}
Defined in: yii\httpclient\Message::hasCookies()
Checks of HTTP message contains any cookie.
Using this method you are able to check cookie presence without instantiating CookieCollection.
public boolean hasCookies ( ) | ||
return | boolean |
Whether message contains any cookie. |
---|
public function hasCookies()
{
if (is_object($this->_cookies)) {
return $this->_cookies->getCount() > 0;
}
return !empty($this->_cookies);
}
Defined in: yii\httpclient\Message::hasHeaders()
Checks of HTTP message contains any header.
Using this method you are able to check cookie presence without instantiating HeaderCollection.
public boolean hasHeaders ( ) | ||
return | boolean |
Whether message contains any header. |
---|
public function hasHeaders()
{
if (is_object($this->_headers)) {
return $this->_headers->getCount() > 0;
}
return !empty($this->_headers);
}
Prepares this request instance for sending.
This method should be invoked by transport before sending a request. Do not call this method unless you know what you are doing.
public $this prepare ( ) | ||
return | $this |
Self reference. |
---|
public function prepare()
{
$content = $this->getContent();
if ($content === null) {
$this->getFormatter()->format($this);
} elseif (is_array($content)) {
$this->prepareMultiPartContent($content);
}
$this->isPrepared = true;
return $this;
}
Return the response time in seconds
public float responseTime ( ) | ||
return | float |
The seconds elapsed from request to response |
---|
public function responseTime()
{
return $this->_timeElapsed;
}
Sends this request.
public yii\httpclient\Response send ( ) | ||
return | yii\httpclient\Response |
Response instance. |
---|---|---|
throws | yii\httpclient\Exception |
public function send()
{
return $this->client->send($this);
}
Defined in: yii\httpclient\Message::setContent()
Sets the HTTP message raw content.
public $this setContent ( $content ) | ||
$content | string |
Raw content. |
return | $this |
Self reference. |
---|
public function setContent($content)
{
$this->_content = $content;
return $this;
}
Defined in: yii\httpclient\Message::setCookies()
Sets the cookies associated with HTTP message.
public $this setCookies ( $cookies ) | ||
$cookies | \yii\web\CookieCollection|\yii\web\Cookie[]|array |
Cookie collection or cookies list. |
return | $this |
Self reference. |
---|
public function setCookies($cookies)
{
$this->_cookies = $cookies;
return $this;
}
Sets the data fields, which composes message content.
public $this setData ( $data ) | ||
$data | mixed |
Content data fields. |
return | $this |
Self reference. |
---|
public function setData($data)
{
if ($this->isPrepared) {
$this->setContent(null);
$this->isPrepared = false;
}
return parent::setData($data);
}
Defined in: yii\httpclient\Message::setFormat()
Sets body format.
public $this setFormat ( $format ) | ||
$format | string |
Body format name. |
return | $this |
Self reference. |
---|
public function setFormat($format)
{
$this->_format = $format;
return $this;
}
Sets full target URL.
This method can be used during request formatting and preparation. Do not use it for the target URL specification, use setUrl() instead.
public $this setFullUrl ( $fullUrl ) | ||
$fullUrl | string |
Full target URL. |
return | $this |
Self reference. |
---|
public function setFullUrl($fullUrl)
{
$this->_fullUrl = $fullUrl;
return $this;
}
Defined in: yii\httpclient\Message::setHeaders()
Sets the HTTP headers associated with HTTP message.
public $this setHeaders ( $headers ) | ||
$headers | array|\yii\web\HeaderCollection |
Headers collection or headers list in format: [headerName => headerValue] |
return | $this |
Self reference. |
---|
public function setHeaders($headers)
{
$this->_headers = $headers;
return $this;
}
public $this setMethod ( $method ) | ||
$method | string |
Request method |
return | $this |
Self reference. |
---|
public function setMethod($method)
{
$this->_method = $method;
return $this;
}
Following options are supported: - timeout: int, the maximum number of seconds to allow request to be executed.
- proxy: string, URI specifying address of proxy server. (e.g. tcp://proxy.example.com:5100).
- userAgent: string, the contents of the "User-Agent: " header to be used in a HTTP request.
- followLocation: bool, whether to follow any "Location: " header that the server sends as part of the HTTP header.
- maxRedirects: int, the max number of redirects to follow.
- protocolVersion: float|string, HTTP protocol version.
- sslVerifyPeer: bool, whether verification of the peer's certificate should be performed.
- sslCafile: string, location of Certificate Authority file on local filesystem which should be used with the 'sslVerifyPeer' option to authenticate the identity of the remote peer.
- sslCapath: string, a directory that holds multiple CA certificates.
You may set options using keys, which are specific to particular transport, like [CURLOPT_VERBOSE => true]
in case
there is a necessity for it.
public $this setOptions ( array $options ) | ||
$options | array |
Request options. |
return | $this |
Self reference. |
---|
public function setOptions(array $options)
{
$this->_options = $options;
return $this;
}
Used with yii\httpclient\CurlTransport to set the file that the transfer should be written to
See also \yii\httpclient\CURLOPT_FILE.
public $this setOutputFile ( $file ) | ||
$file | resource | |
return | $this |
Self reference. |
---|
public function setOutputFile($file)
{
$this->_outputFile = $file;
return $this;
}
Sets target URL.
public $this setUrl ( $url ) | ||
$url | string|array |
Use a string to represent a URL (e.g. |
return | $this |
Self reference. |
---|
public function setUrl($url)
{
$this->_url = $url;
$this->_fullUrl = null;
return $this;
}
Returns string representation of this HTTP message.
public string toString ( ) | ||
return | string |
The string representation of this HTTP message. |
---|
public function toString()
{
if (!$this->isPrepared) {
$this->prepare();
}
$result = strtoupper($this->getMethod()) . ' ' . $this->getFullUrl();
$parentResult = parent::toString();
if ($parentResult !== '') {
$result .= "\n" . $parentResult;
}
return $result;
}
Event Details
An event raised right after request has been sent.
An event raised right before sending request.