Class yii\httpclient\CurlFormatter
Inheritance | yii\httpclient\CurlFormatter » yii\base\BaseObject |
---|---|
Implements | yii\httpclient\FormatterInterface |
Available since extension's version | 2.0.9 |
Source Code | https://github.com/yiisoft/yii2-httpclient/blob/master/src/CurlFormatter.php |
CURLFormatter is used with CurlTransport to format the content of the request as an array with the field name as key and field data as value
See also \yii\httpclient\CURLOPT_POSTFIELDS.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$encodingType | integer | URL encoding type. | yii\httpclient\CurlFormatter |
Public Methods
Method | Description | Defined By |
---|---|---|
format() | Formats given HTTP request message. | yii\httpclient\CurlFormatter |
Property Details
URL encoding type. Possible values are:
- PHP_QUERY_RFC1738 - encoding is performed per 'RFC 1738' and the 'application/x-www-form-urlencoded' media type, which implies that spaces are encoded as plus (+) signs. This is most common encoding type used by most web applications.
- PHP_QUERY_RFC3986 - then encoding is performed according to 'RFC 3986', and spaces will be percent encoded (%20). This encoding type is required by OpenID and OAuth protocols.
Method Details
Formats given HTTP request message.
public yii\httpclient\Request format ( yii\httpclient\Request $request ) | ||
$request | yii\httpclient\Request |
HTTP request instance. |
return | yii\httpclient\Request |
Formatted request. |
---|
public function format(Request $request)
{
$data = $request->getData();
if (strcasecmp('GET', $request->getMethod()) === 0) {
if ($data !== null) {
$content = http_build_query((array)$data, '', '&', $this->encodingType);
$request->setFullUrl(null);
$url = $request->getFullUrl();
$url .= (strpos($url, '?') === false) ? '?' : '&';
$url .= $content;
$request->setFullUrl($url);
}
return $request;
}
if ($data !== null) {
$request->setContent($data);
} else {
$request->getHeaders()->set('Content-Length', '0');
}
return $request;
}