Ну, я нашел это !!
Подпрограмма, которая фактически вызывает вызов CURL (не показан) , выдала свой собственный curl_setopt
из CURLOPT_HTTPHEADER
, очевидно заменяя настройки параметров, показанные здесь.
Код, который работает, выглядит следующим образом: (с $headers
, объединенным с несколькими другими заголовками с помощью процедуры вызова CURL, также не показанной здесь, через CURLOPT_HTTPHEADER
) .
$json = json_encode($data);
$headers = array(
'Content-Type: application/json',
'Content-Length: ' . strlen($json),
'Accept: application/json'
);
curl_setopt_array($this->ch, array(
CURLOPT_URL => '...',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $json,
));
Итак, я пытался попробовать «правильное PHP mojo», но не смог понять, что некоторые параметры не были установлены - то есть настройки не «зависли» - из-за еще одна ошибка в моей программе, которая никогда не отображалась в этом билете.
Теперь мы знаем: если вы используете эти параметры CURL, и включают эти заголовки (Accept:
на самом деле зависит от вас ...) , и убедитесь, что CURL_POSTFIELDS
это строка, а не массив, она будет работать. Принимая во внимание, что если вы сделаете , а не , сделав все эти вещи, результатом будут загадочные сообщения.