/** * @param $resultData */ protected function processResult($resultData) { if ($this->request->getCurlOptions(CURLOPT_PROXY) !== null) { $this->stripProxyHeader($resultData); } list($headerText, $this->body) = explode("\r\n\r\n", $resultData, 2); foreach (explode("\r\n", $headerText) as $i => $headerLine) { if ($i === 0) { $this->header['http_code'] = $headerLine; } else { list($key, $value) = explode(': ', $headerLine); $this->header[$key] = $value; } } }
/** * Confirms that cURL options are returned as expected. */ public function testCurlOptions() { $request = new Request('foo.bar/api', array('composer' => 'brahms')); $expected = array(CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_URL => 'http://foo.bar/api?composer=brahms', CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 10); $this->assertEquals($expected, $request->getCurlOptions()); $request->autoRedirect(false); unset($expected[CURLOPT_FOLLOWLOCATION]); unset($expected[CURLOPT_MAXREDIRS]); $this->assertEquals($expected, $request->getCurlOptions()); $request->setVerb('FROWN'); $expected[CURLOPT_CUSTOMREQUEST] = 'FROWN'; $this->assertEquals($expected, $request->getCurlOptions()); $postContent = 'aosidfjoaisdfjoiasdfj'; $request->setPayload($postContent); $request->setVerb('POST'); $expected[CURLOPT_CUSTOMREQUEST] = 'POST'; $expected[CURLOPT_POSTFIELDS] = $postContent; // When the payload is a string, the content type should be this $expected[CURLOPT_HTTPHEADER] = array('Content-Type: application/x-www-form-urlencoded'); $this->assertEquals($expected, $request->getCurlOptions()); // WHen it's an array, it's this $postContent = array('foo' => 'bar'); $request->setPayload($postContent); $expected[CURLOPT_HTTPHEADER] = array('Content-Type: multipart/form-data'); $expected[CURLOPT_POSTFIELDS] = $postContent; $request->setBasicAuthentication('max', 'mypassword123'); $expected[CURLOPT_USERPWD] = 'max:mypassword123'; $this->assertEquals($expected, $request->getCurlOptions()); $request->setHeader('Foo: bar'); $expected[CURLOPT_HTTPHEADER][] = 'Foo: bar'; $this->assertEquals($expected, $request->getCurlOptions()); }