Синтаксис массива JSON для запросов HTTP HTTP POST

Я пытаюсь написать скрипт PHP, который будет запрашивать API, к которому у меня есть доступ. Для этого API требуется запрос на публикацию тела в формате JSON, одним из критериев которого является

"Analyses": ["Phenotype"]

Обратите внимание, что вокруг второй части этой строки нет двойных кавычек. Когда я пытаюсь передать этот скрипт ниже с помощью Httpful, этот скрипт дает мне результат HTTP 500. Без критериев анализа я получаю правильный ответ (хотя и с ошибкой, запрашивающей информацию анализа) в выводе формата JSON. Я предполагаю, что это как-то связано с форматированием / синтаксисом строки Analyses, и я не уверен, что с этим делать. Если я использую одинарные кавычки, я получаю ошибку 500. Если я оставляю кавычки полностью, это предполагает, что это массив, и выдает мне ошибку объекта «Ссылка на объект не установлена ​​на экземпляр объекта». Я не знаю, как передать этот формат без кавычек.

$response = \Httpful\Request::post($url)
->sendsJson()
->body('{"apiUserKey":"abcde",
"apiUserId":"efghi",
"Species":"9606",
"Analyses": "["Phenotype"]"}')
->send();

Спасибо!

0

Решение

Вы пример почти прав, но вы включаете один набор двойных кавычек для многих. Вы пытаетесь передать массив строк в поле «Анализ». Сам массив не должен быть в двойных кавычках.

$response = \Httpful\Request::post($url)
->sendsJson()
->body('{"apiUserKey":"abcde",
"apiUserId":"efghi",
"Species":"9606",
"Analyses": ["Phenotype"]
}')
->send();
0

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

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

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