コード例 #1
0
ファイル: TestCase.php プロジェクト: jirinapravnik/twitter
 /**
  * @param Api\Request $request
  * @param string $signatureMethodName
  *
  * @return Api\Response
  *
  * @throws Exceptions\InvalidStateException
  * @throws OAuth\Exceptions\ApiException
  */
 public function makeRequest(Api\Request $request, $signatureMethodName = 'PLAINTEXT')
 {
     if (empty($this->responses)) {
         throw new Exceptions\InvalidStateException("Unexpected request");
     }
     $this->requests[] = $request;
     $request->setHeaders($request->getHeaders() + ['Accept' => 'application/json']);
     // the CurlClient is setting this as a default
     list($content, $httpCode, $headers, $info) = array_shift($this->responses);
     return new Api\Response($request, $content, $httpCode, $headers, $info);
 }
コード例 #2
0
ファイル: CurlClient.php プロジェクト: pkristian/flickrlickr
 /**
  * @param Request $request
  *
  * @return resource
  */
 protected function buildCurlResource(Request $request)
 {
     $ch = curl_init((string) $request->getUrl());
     $options = $this->curlOptions;
     $options[CURLOPT_CUSTOMREQUEST] = $request->getMethod();
     // configuring a POST request
     if ($request->isPost() && $request->getPost()) {
         $options[CURLOPT_POSTFIELDS] = $request->getPost();
     }
     if ($request->isHead()) {
         $options[CURLOPT_NOBODY] = TRUE;
     } else {
         if ($request->isGet()) {
             $options[CURLOPT_HTTPGET] = TRUE;
         }
     }
     // disable the 'Expect: 100-continue' behaviour. This causes CURL to wait
     // for 2 seconds if the server does not support this header.
     $options[CURLOPT_HTTPHEADER]['Expect'] = '';
     $tmp = [];
     foreach ($request->getHeaders() + $options[CURLOPT_HTTPHEADER] as $name => $value) {
         $tmp[] = trim("{$name}: {$value}");
     }
     $options[CURLOPT_HTTPHEADER] = $tmp;
     // execute request
     curl_setopt_array($ch, $options);
     $this->onRequest($request, $options);
     return $ch;
 }