setCurlOption() публичный Метод

public setCurlOption ( $key, $value )
$key
$value
Пример #1
0
 /**
  * Returns a Request from specified stream context and path.
  *
  * If an existing Request is given, the stream context options
  * are set on the specified Request object.
  *
  * @param resource $context Stream context resource.
  * @param string $path Path to use as url.
  * @param Request $existing Optional, existing request.
  *
  * @return Request
  */
 public static function createRequestFromStreamContext($context, $path, Request $existing = null)
 {
     $http = self::getHttpOptionsFromContext($context);
     $request = $existing;
     if (empty($request)) {
         $method = !empty($http['method']) ? $http['method'] : 'GET';
         $request = new Request($method, $path, array());
     }
     if (!empty($http['header'])) {
         $headers = HttpUtil::parseHeaders(HttpUtil::parseRawHeader($http['header']));
         foreach ($headers as $key => $value) {
             $request->setHeader($key, $value);
         }
     }
     if (!empty($http['content'])) {
         $request->setBody($http['content']);
     }
     if (!empty($http['user_agent'])) {
         $request->setHeader('User-Agent', $http['user_agent']);
     }
     if (isset($http['follow_location'])) {
         $request->setCurlOption(CURLOPT_FOLLOWLOCATION, (bool) $http['follow_location']);
     }
     if (isset($http['max_redirects'])) {
         $request->setCurlOption(CURLOPT_MAXREDIRS, $http['max_redirects']);
     }
     if (isset($http['timeout'])) {
         $request->setCurlOption(CURLOPT_TIMEOUT, $http['timeout']);
     }
     // TODO: protocol_version
     return $request;
 }
Пример #2
0
 /**
  * Sets a cURL option on a Request.
  *
  * @param Request  $request Request to set cURL option to.
  * @param integer  $option  cURL option to set.
  * @param mixed    $value   Value of the cURL option.
  * @param resource $curlHandle cURL handle where this option is set on (optional).
  */
 public static function setCurlOptionOnRequest(Request $request, $option, $value, $curlHandle = null)
 {
     switch ($option) {
         case CURLOPT_URL:
             $request->setUrl($value);
             break;
         case CURLOPT_CUSTOMREQUEST:
             $request->setMethod($value);
             break;
         case CURLOPT_POST:
             if ($value == true) {
                 $request->setMethod('POST');
             }
             break;
         case CURLOPT_POSTFIELDS:
             // todo: check for file @
             if (is_array($value)) {
                 foreach ($value as $name => $fieldValue) {
                     $request->setPostField($name, $fieldValue);
                 }
                 if (count($value) == 0) {
                     $request->removeHeader('Content-Type');
                 }
             } else {
                 $request->setBody($value);
             }
             break;
         case CURLOPT_HTTPHEADER:
             foreach ($value as $header) {
                 $headerParts = explode(': ', $header, 2);
                 if (!isset($headerParts[1])) {
                     $headerParts[0] = rtrim($headerParts[0], ':');
                     $headerParts[1] = null;
                 }
                 $request->setHeader($headerParts[0], $headerParts[1]);
             }
             break;
         case CURLOPT_FILE:
         case CURLOPT_HEADER:
         case CURLOPT_WRITEFUNCTION:
         case CURLOPT_HEADERFUNCTION:
         case CURLOPT_UPLOAD:
             // Ignore header, file and writer functions.
             // These options are stored and will be handled later in handleOutput().
             break;
         default:
             $request->setCurlOption($option, $value);
             break;
     }
 }