/** * @scenario POST should work just like GET */ public function testPost() { $client = new Client('someone', 'some_secret', 'http://www.whatever.com'); $mock = new Mock([new Response(200, [], Stream::factory('ABC'))]); $client->getGuzzleClient()->getEmitter()->attach($mock); $response = $client->post('some_path', [], 'data'); $this->assertEquals('ABC', $response->getBody()->getContents()); }
/** * @scenario POST should work just like GET */ public function testPost() { $client = new Client('someone', 'some_secret', 'http://www.whatever.com'); $mock = new MockHandler([new Response(200, [], Psr7\stream_for('ABC'))]); $client->getGuzzleClient()->getConfig('handler')->setHandler($mock); $response = $client->post('some_path', [], 'data'); $this->assertEquals('ABC', $response->getBody()->getContents()); }
public function post($path, $parameters = [], $data = '', $autoresolveDeferred = true, string $contentType = null) { if ($contentType) { switch ($contentType) { case 'xml': case 'json': break; default: throw new InvalidArgumentException("contentType '{$contentType}' is invalid"); } } else { $contentType = 'xml'; } $response = parent::post($path, $parameters, $data, $autoresolveDeferred); switch ($contentType) { case 'xml': return (string) $response->getBody(); case 'json': return json_decode((string) $response->getBody(), true); } }