public function createHttpRequest($method, $uri, $contentType = '', $acceptType = '')
{
$headers = array_merge($method === 'POST' && $uri === '/api/ezp/v2/user/sessions' ? [] : $this->headers, ['Content-Type: ' . $this->generateMediaTypeString($contentType), 'Accept: ' . $this->generateMediaTypeString($acceptType)]);
switch ($method) {
case 'PUBLISH':
$method = 'POST';
$headers[] = 'X-HTTP-Method-Override: PUBLISH';
break;
case 'MOVE':
$method = 'POST';
$headers[] = 'X-HTTP-Method-Override: MOVE';
break;
case 'PATCH':
$method = 'PATCH';
$headers[] = 'X-HTTP-Method-Override: PATCH';
break;
case 'COPY':
$method = 'POST';
$headers[] = 'X-HTTP-Method-Override: COPY';
break;
}
$request = new HttpRequest($method, $uri, $this->httpHost);
$request->addHeaders($headers);
return $request;
}