Как смоделировать ответ из файла с помощью Guzzle 6?

Вот содержание response.txt:

HTTP/1.1 200 OK
Server: nginx
Date: Fri, 15 Feb 2016 18:25:28 GMT
Content-Type: application/json;charset=utf-8

{
"field1": "a",
"field2": "b",
}

Я старался:

$stream = Psr7\stream_for(file_get_contents('response.txt'));
$response = new Response(200, ['Content-Type' => 'application/json'], $stream);
dd($response->getBody());

Какой выход:

object(GuzzleHttp\Psr7\Stream)#3 (7) {
["stream":"GuzzleHttp\Psr7\Stream":private]=>
resource(26) of type (stream)
["size":"GuzzleHttp\Psr7\Stream":private]=>
NULL
["seekable":"GuzzleHttp\Psr7\Stream":private]=>
bool(true)
["readable":"GuzzleHttp\Psr7\Stream":private]=>
bool(true)
["writable":"GuzzleHttp\Psr7\Stream":private]=>
bool(true)
["uri":"GuzzleHttp\Psr7\Stream":private]=>
string(10) "php://temp"["customMetadata":"GuzzleHttp\Psr7\Stream":private]=>
array(0) {
}
}

Поэтому я не могу получить содержимое JSON в response.txt, как это сделать? Что я хочу получить, это что-то вроде:

array('field1'=>'a','field2'=>'b');

1

Решение

Третий параметр конструктора класса Response должен быть строкой тела. Смотрите документацию для класса Guzzle Response: http://docs.guzzlephp.org/en/latest/psr7.html#guzzle-and-psr-7.

Следующий код должен работать:

$stream = file_get_contents('response.txt');
$response = new Response(200, ['Content-Type' => 'application/json'], $stream);
dd($response->getBody());
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]