You can. But you need to send encoded JSON as content (aka request body), not a parameter.
$this->call( 'POST', '/articles', [], [], [], $headers = [ 'HTTP_CONTENT_LENGTH' => mb_strlen($payload, '8bit'), 'CONTENT_TYPE' => 'application/json', 'HTTP_ACCEPT' => 'application/json' ], $json = json_encode(['foo' => 'bar']) );
This is the 7th parameter.
If you look at the definition of a method (in the Laravel core), you can see what it expects.
public function call($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null)
Currently, it is not yet supported by Laravel 5.1 tools, fixes, placement, removal of convenience methods.
This supplement is currently being discussed here and here .
EDIT: I have to say that this answer is based on installing Laravel 5.1, so it may not be 100% applicable to you if you are using an older version.
source share