diff --git a/src/Curl/Curl.php b/src/Curl/Curl.php index 72a8ab4..38e3c50 100644 --- a/src/Curl/Curl.php +++ b/src/Curl/Curl.php @@ -1068,6 +1068,11 @@ class Curl public function unsetHeader($key) { unset($this->headers[$key]); + $headers = array(); + foreach ($this->headers as $key => $value) { + $headers[] = $key . ': ' . $value; + } + $this->setOpt(CURLOPT_HTTPHEADER, $headers); } /** diff --git a/tests/PHPCurlClass/PHPCurlClassTest.php b/tests/PHPCurlClass/PHPCurlClassTest.php index a052f8e..ec7d81e 100644 --- a/tests/PHPCurlClass/PHPCurlClassTest.php +++ b/tests/PHPCurlClass/PHPCurlClassTest.php @@ -2979,4 +2979,25 @@ class CurlTest extends PHPUnit_Framework_TestCase $this->assertEquals($expected_url, $actual_url); } } + + public function testUnsetHeader() + { + $request_key = 'X-Request-Id'; + $request_value = '1'; + $data = array( + 'test' => 'server', + 'key' => 'HTTP_X_REQUEST_ID', + ); + + $curl = new Curl(); + $curl->setHeader($request_key, $request_value); + $curl->get(Test::TEST_URL, $data); + $this->assertEquals($request_value, $curl->response); + + $curl = new Curl(); + $curl->setHeader($request_key, $request_value); + $curl->unsetHeader($request_key); + $curl->get(Test::TEST_URL, $data); + $this->assertEquals('', $curl->response); + } } diff --git a/tests/PHPCurlClass/PHPMultiCurlClassTest.php b/tests/PHPCurlClass/PHPMultiCurlClassTest.php index 28a0eb4..4610f80 100644 --- a/tests/PHPCurlClass/PHPMultiCurlClassTest.php +++ b/tests/PHPCurlClass/PHPMultiCurlClassTest.php @@ -2383,4 +2383,29 @@ class MultiCurlTest extends PHPUnit_Framework_TestCase $this->assertNotEmpty($stderr); } + + public function testUnsetHeader() + { + $request_key = 'X-Request-Id'; + $request_value = '1'; + $data = array( + 'test' => 'server', + 'key' => 'HTTP_X_REQUEST_ID', + ); + + $multi_curl = new MultiCurl(); + $multi_curl->setHeader($request_key, $request_value); + $multi_curl->addGet(Test::TEST_URL, $data)->complete(function ($instance) use ($request_value) { + PHPUnit_Framework_Assert::assertEquals($request_value, $instance->response); + }); + $multi_curl->start(); + + $multi_curl = new MultiCurl(); + $multi_curl->setHeader($request_key, $request_value); + $multi_curl->unsetHeader($request_key); + $multi_curl->addGet(Test::TEST_URL, $data)->complete(function ($instance) { + PHPUnit_Framework_Assert::assertEquals('', $instance->response); + }); + $multi_curl->start(); + } }