private function _logRequest(ehough_shortstop_api_HttpRequest $request) { $headerArray = $request->getAllHeaders(); $this->_logger->debug(sprintf('Here are the ' . count($headerArray) . ' headers in the request for %s', $request)); foreach ($headerArray as $name => $value) { $this->_logger->debug("<!--suppress HtmlPresentationalElement --><tt>{$name}: {$value}</tt>"); } }
private function _canHandle(ehough_shortstop_api_HttpRequest $request, ehough_shortstop_api_HttpResponse $response) { $url = $request->getUrl(); $host = $url->getHost(); if (!tubepress_impl_util_StringUtils::endsWith($host, 'youtube.com')) { return false; } $contentType = $response->getHeaderValue('Content-Type'); $entity = $response->getEntity(); return $entity && $contentType === 'application/vnd.google.gdata.error+xml'; }
private function _getSignature(ehough_shortstop_api_HttpRequest $request, array $baseOAuthParams, ehough_coauthor_api_v1_Credentials $clientCredentials, ehough_coauthor_api_v1_Credentials $tokenCredentials = null) { $url = $request->getUrl(); $existingQueryParams = $url->getQueryVariables(); $signatureData = array_merge($existingQueryParams, $baseOAuthParams); foreach ($signatureData as $key => $value) { $signatureData[$this->_urlEncode($key)] = $this->_urlEncode($value); } uksort($signatureData, 'strcmp'); $baseUrl = $url->getScheme() . '://' . $this->_getNormalizedAuthority($url) . $url->getPath(); $baseStringParts = $this->_urlEncode(array($request->getMethod(), $baseUrl, $this->_concatParams($signatureData))); $baseString = implode('&', $baseStringParts); $keyParts = $this->_urlEncode(array($clientCredentials->getSecret(), $tokenCredentials === null ? '' : $tokenCredentials->getSecret())); $signingKey = implode('&', $keyParts); $signature = base64_encode($this->_hash($baseString, $signingKey)); return $signature; }
/** * Determines if this transport can handle the given request. * * @param ehough_shortstop_api_HttpRequest $request The request to handle. * * @return bool True if this transport can handle the given request. False otherwise. */ public function canHandle(ehough_shortstop_api_HttpRequest $request) { return $request->getMethod() === ehough_shortstop_api_HttpRequest::HTTP_METHOD_GET; }
private function _canHandle(ehough_shortstop_api_HttpRequest $request, ehough_shortstop_api_HttpResponse $response) { $url = $request->getUrl(); $host = $url->getHost(); return tubepress_impl_util_StringUtils::endsWith($host, 'vimeo.com'); }
private static function _buildHeaderString(ehough_shortstop_api_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; }
/** * Determines if this transport can handle the given request. * * @param ehough_shortstop_api_HttpRequest $request The request to handle. * * @return bool True if this transport can handle the given request. False otherwise. */ public function canHandle(ehough_shortstop_api_HttpRequest $request) { $scheme = $request->getUrl()->getScheme(); return preg_match_all('/https?/', $scheme, $matches) === 1; }
private static function _getMethod(ehough_shortstop_api_HttpRequest $request) { switch ($request->getMethod()) { case ehough_shortstop_api_HttpRequest::HTTP_METHOD_POST: return HTTP_METH_POST; case ehough_shortstop_api_HttpRequest::HTTP_METHOD_PUT: return HTTP_METH_PUT; case ehough_shortstop_api_HttpRequest::HTTP_METHOD_GET: default: return HTTP_METH_GET; } }
/** * Sets things like user agent and HTTP version. * * @param ehough_shortstop_api_HttpRequest $request The request to modify. * * @return void */ private function _setDefaultHeadersBasic(ehough_shortstop_api_HttpRequest $request) { $map = array(ehough_shortstop_api_HttpRequest::HTTP_HEADER_USER_AGENT => 'shortstop; https://github.com/ehough/shortstop', ehough_shortstop_api_HttpRequest::HTTP_HEADER_HTTP_VERSION => 'HTTP/1.0'); foreach ($map as $headerName => $headerValue) { /* only set these headers if someone else hasn't already */ if (!$request->containsHeader($headerName)) { $request->setHeader($headerName, $headerValue); } } }
private function _setCurlOptionsHeaders(ehough_shortstop_api_HttpRequest $request) { // cURL expects full header strings in each element $newHeaders = array(); $headers = $request->getAllHeaders(); foreach ($headers as $name => $value) { $newHeaders[] = "{$name}: {$value}"; } curl_setopt($this->_handle, CURLOPT_HTTPHEADER, $newHeaders); }