コード例 #1
0
 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>");
     }
 }
コード例 #2
0
 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';
 }
コード例 #3
0
ファイル: Signer.php プロジェクト: jenia-buianov/all_my_sites
 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;
 }
コード例 #4
0
 /**
  * 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;
 }
コード例 #5
0
 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');
 }
コード例 #6
0
 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;
 }
コード例 #7
0
 /**
  * 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;
 }
コード例 #8
0
 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;
     }
 }
コード例 #9
0
 /**
  * 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);
         }
     }
 }
コード例 #10
0
 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);
 }