Esempio n. 1
0
 /**
  * @param string $url
  * @param string $method
  * @param array $userOpts
  * @param array $defaultOpts
  * @param array $userHeaders
  * @param array $defaultHeaders
  * @param string|array|object $requestBody
  * @return CurlPlusResponse
  */
 private static function _execute($url, $method, array $userOpts, array $defaultOpts, array $userHeaders, array $defaultHeaders = array(), $requestBody = null)
 {
     self::$_client->initialize($url);
     switch ($method) {
         case 'GET':
             $defaultOpts[CURLOPT_HTTPGET] = true;
             break;
         case 'POST':
             $defaultOpts[CURLOPT_POST] = true;
             break;
         default:
             $defaultOpts[CURLOPT_CUSTOMREQUEST] = $method;
     }
     $bodyType = gettype($requestBody);
     if (null !== $requestBody && in_array($method, self::$_methodsWithBody) && !isset($userOpts[CURLOPT_POSTFIELDS])) {
         if ('array' === $bodyType || 'object' === $bodyType) {
             $requestBody = http_build_query($requestBody);
         }
         $defaultOpts[CURLOPT_POSTFIELDS] = $requestBody;
     }
     self::$_client->setCurlOpts($userOpts + $defaultOpts);
     self::$_client->setRequestHeaders($userHeaders + $defaultHeaders);
     return self::$_client->execute(true);
 }
Esempio n. 2
0
 /**
  * @covers \DCarbone\CurlPlus\CurlPlusClient::setRequestHeaders
  * @covers \DCarbone\CurlPlus\CurlPlusClient::getRequestHeaders
  * @depends testCanAddRequestHeaderString
  * @param \DCarbone\CurlPlus\CurlPlusClient $curlClient
  */
 public function testCanOverwriteRequestHeaderArray(\DCarbone\CurlPlus\CurlPlusClient $curlClient)
 {
     $curlClient->setRequestHeaders(array('Content-Type' => 'text/xml'));
     $requestHeaders = $curlClient->getRequestHeaders();
     $this->assertInternalType('array', $requestHeaders);
     $this->assertCount(1, $requestHeaders);
     $this->assertArrayHasKey('Content-Type', $requestHeaders);
     $this->assertContains('text/xml', $requestHeaders);
 }