Esempio n. 1
0
 private function getParameters(Request $request)
 {
     $uri = $request->getUri();
     $queryParamStr = parse_url($uri, PHP_URL_QUERY) ?? '';
     parse_str($queryParamStr, $queryParams);
     $body = $request->getBody() ?? '';
     parse_str($body, $bodyParams);
     return array_merge($queryParams, $bodyParams);
 }
Esempio n. 2
0
 public static function fromRequest(Request $request)
 {
     $commandLines = [];
     $commandLines[] = "curl -i";
     $commandLines[] = "-X " . $request->getMethod() . "";
     //curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://hostname/resource
     $headers = $request->getAllHeaders();
     foreach ($headers as $name => $values) {
         foreach ($values as $value) {
             $commandLines[] = sprintf('-H "%s: %s"', $name, $value);
         }
     }
     $body = $request->getBody();
     if ($body !== null) {
         $commandLines[] = '-d "' . addslashes($body) . '"';
     }
     $commandLines[] = $request->getUri();
     return implode(" \\\n", $commandLines);
 }
 /**
  * Decide whether the post fields should be added to the Oauth BaseString.
  * Flickr incorrectly add the post fields when the content type is 'multipart/form-data'. They should only be added when the content type is 'application/x-www-form-urlencoded'
  *
  * @param $request
  * @return bool Whether the post fields should be signed or not
  */
 public function shouldPostFieldsBeSigned(Request $request)
 {
     $returnValue = false;
     if ($request->hasHeader('Content-Type')) {
         $contentType = $request->getHeader('Content-Type');
         //TODO - not safe
         if ($contentType === 'application/x-www-form-urlencoded' || $contentType === 'multipart/form-data') {
             $returnValue = true;
         }
     }
     // Don't sign POST fields if the request uses POST fields and no files
     $body = $request->getBody();
     if ($body instanceof \Amp\Artax\FormBody) {
         if ($body == 0) {
             $returnValue = false;
         }
     }
     return $returnValue;
 }
Esempio n. 4
0
 private function normalizeRequestBodyHeaders(Request $request, array $options)
 {
     if ($request->hasHeader('Content-Length')) {
         // If the user manually assigned a Content-Length we don't need to do anything here.
         return;
     }
     $body = $request->getBody();
     $method = $request->getMethod();
     if (empty($body) && $body !== '0' && in_array($method, ['POST', 'PUT', 'PATCH'])) {
         $request->setHeader('Content-Length', '0');
         $request->removeHeader('Transfer-Encoding');
     } elseif (is_scalar($body) && $body !== '') {
         $body = (string) $body;
         $request->setBody($body);
         $request->setHeader('Content-Length', strlen($body));
         $request->removeHeader('Transfer-Encoding');
     } elseif ($body instanceof \Iterator) {
         $request->removeHeader('Content-Length');
         $request->setHeader('Transfer-Encoding', 'chunked');
         $chunkedBody = new ChunkingIterator($body);
         $request->setBody($chunkedBody);
     } elseif ($body !== null) {
         throw new \InvalidArgumentException('Request entity body must be a scalar or Iterator');
     }
     if ($body && $options[self::OP_EXPECT_CONTINUE] && !$request->hasHeader('Expect')) {
         $request->setHeader('Expect', '100-continue');
     }
     if ($method === 'TRACE' || $method === 'HEAD' || $method === 'OPTIONS') {
         $request->setBody(null);
     }
 }