private static function _buildHeaderString(org_tubepress_api_http_HttpRequest $request) { $url = $request->getUrl(); $path = $url->getPath(); $query = $url->getQuery(); $host = $url->getHost(); $entity = $request->getEntity(); $headerArray = $request->getAllHeaders(); $toRequest = '/'; if ($path !== null) { $toRequest = $path; } if ($query !== null) { $toRequest .= '?' . $query; } /** Use HTTP 1.0 unless you want this to run SLOW. */ $strHeaders = $request->getMethod() . " {$toRequest} HTTP/1.0\r\n"; $strHeaders .= "Host: {$host}\r\n"; foreach ($headerArray as $name => $value) { $strHeaders .= "{$name}: {$value}\r\n"; } $strHeaders .= "\r\n"; if ($entity !== null && $entity->getContent() !== null) { $strHeaders .= $entity->getContent(); } return $strHeaders; }
private function _setCurlOptionsBody(org_tubepress_api_http_HttpRequest $request) { $body = $request->getEntity() === null ? null : $request->getEntity()->getContent(); switch ($request->getMethod()) { case org_tubepress_api_http_HttpRequest::HTTP_METHOD_POST: curl_setopt($this->_handle, CURLOPT_POST, true); curl_setopt($this->_handle, CURLOPT_POSTFIELDS, $body); break; case org_tubepress_api_http_HttpRequest::HTTP_METHOD_PUT: curl_setopt($this->_handle, CURLOPT_CUSTOMREQUEST, org_tubepress_api_http_HttpRequest::HTTP_METHOD_PUT); curl_setopt($this->_handle, CURLOPT_POSTFIELDS, $body); break; } }
private static function _setDefaultHeadersContent(org_tubepress_api_http_HttpRequest $request) { $entity = $request->getEntity(); if ($entity === null) { org_tubepress_impl_log_Log::log(self::$_logPrefix, 'No HTTP entity in request'); return; } $contentLength = $entity->getContentLength(); $contentEncoding = $entity->getContentEncoding(); $content = $entity->getContent(); $type = $entity->getContentType(); if ($content !== null && $contentEncoding !== null && $contentLength !== null && $type !== null) { $request->setHeader(org_tubepress_api_http_HttpMessage::HTTP_HEADER_CONTENT_ENCODING, $contentEncoding); $request->setHeader(org_tubepress_api_http_HttpMessage::HTTP_HEADER_CONTENT_LENGTH, $contentLength); $request->setHeader(org_tubepress_api_http_HttpMessage::HTTP_HEADER_CONTENT_TYPE, $type); return; } if ($contentLength === null) { org_tubepress_impl_log_Log::log(self::$_logPrefix, 'HTTP entity in request, but no content length set. Ignoring this entity!'); } if ($contentEncoding === null) { org_tubepress_impl_log_Log::log(self::$_logPrefix, 'HTTP entity in request, but no content encoding set. Ignoring this entity!'); } if ($content === null) { org_tubepress_impl_log_Log::log(self::$_logPrefix, 'HTTP entity in request, but no content set. Ignoring this entity!'); } if ($type === null) { org_tubepress_impl_log_Log::log(self::$_logPrefix, 'HTTP entity in request, but no content type set. Ignoring this entity!'); } }