Как прочитать ответ потока ndjson в phpPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как прочитать ответ потока ndjson в php

Сообщение Anonymous »

извините, если мой вопрос глупый, но я чего-то не понимаю.
Я использую Guzzle в процессе PHP для вызова API.

Код: Выделить всё

$response = $this->client->request('GET', 'droits_acces', [
'stream' => true,
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/x-ndjson',
]
]);
Но я не понимаю, как интерпретировать ответ. Я нашел эту библиотеку для интерпретации ndjson: https://github.com/sunaoka/ndjson
Моя логика заключалась в том, чтобы взять содержимое ответа, сохранить его во временном файле, а затем прочитать его. используя библиотеку.
Но когда я использую $response->getBody()->getContents(), я получаю ответ с большим количеством разрывов строк. Однако в NDJSON разрывы строк представляют собой разделение между одним объектом и другим, если я правильно понимаю.
[edit]
Вот снимок экрана ответа, который я получаю, когда Я использую $response->getBody()->getContents().
Экран ответа тела
Я попробовал прочитать его с помощью библиотеки ndjson, используя пример в документации (с пробелы только между объектами, и это работает). Единственная разница между ними — это пробелы...
Когда я удаляю «лишние» разрывы строк, чтобы получить файл, подобный показанному ниже, все работает хорошо.В этом примере:
$content не работает, но $content2 работает

Код: Выделить всё

public function getAccessRights()
{
$temp_file = tempnam(sys_get_temp_dir(), 'TMP_');
$temp_file_with_extension = $temp_file . '.ndjson';
rename($temp_file, $temp_file_with_extension);
$file_handle = fopen($temp_file_with_extension, 'a+');

// Content not working
$content = 

Подробнее здесь: [url]https://stackoverflow.com/questions/78702832/how-to-read-ndjson-stream-response-in-php[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»