Патч-вызов возвращается "объект не является хорошо сформированным документом" Application/json-patch+json "Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Патч-вызов возвращается "объект не является хорошо сформированным документом" Application/json-patch+json "

Сообщение Anonymous »

Сегодня я тестировал патч-вызовы в API с использованием PHP в первый раз, и на этот момент я не совсем понял, как заставить их работать. Несмотря на то, что мое тело было массивом, поскольку ошибка впервые указала, когда я проанализировал его в JSON, теперь оно говорит, что объект по-прежнему не является хорошо сформированным применением/JSON-Patch+JSON.
Я полностью потерян в отношении того, почему это может быть, поскольку другие примеры, которые я видел, не отличаются от того, что я написал.
Это существует параметры. class = "lang-json prettyprint-override">{
"ac": "774",
"allowed_clis": [
"34774554114"
],
"cc": "34",
"cli": "34774554114",
"id": 1512,
"subscriber_id": 1512
}
< /code>
Чего я пытаюсь достичь: < /pbr /> {
"ac": "774",
"allowed_clis": [
"34774554114"
],
"cc": "34",
"cli": "34774554114",
"id": 1512,
"e164_to_ruri": true,
"subscriber_id": 1512
}
< /code>
Это мой код: < /p>
$dataArray = [
'op' => 'add',
'path' => '/e164_to_ruri',
'value' => true
];

function setPreferences($dataArray, $uri, $token){
$ch= curl_init();

$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => $dataArray,
CURLOPT_URL => $uri,
CURLOPT_HTTPHEADER => array("Content-Type: application/json-patch+json", "Authorization: Basic ".$token)
);
curl_setopt_array($ch, $options);

$response = curl_exec($ch);

$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

return $response;
}

$response = setPreferences($dataArray, $uri, $token);
$response = json_decode($response, true);
print_r($response);
< /code>
и, наконец, ответ, который я получаю: < /p>
Array
(
[message] => The entity is not a well-formed 'application/json-patch+json' document. Malformed JSON: Expected array or object at line 0, offset 0

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

 => 400
)

< /code>
Моему ограниченному Knoledge, $ dataarray-это хорошо сформированный массив. Так что я не понимаю, откуда этот ответ.
Большое спасибо за предоставленную помощь! < /P> 

Подробнее здесь: [url]https://stackoverflow.com/questions/60039545/patch-call-returning-the-entity-is-not-a-well-formed-application-json-patchjs[/url]
Ответить

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

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

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

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

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