#php #curl
Вопрос:
Является ли приведенный ниже правильный способ вычисления content-length
ассоциативного массива POST
в PHP CURL?
$contentLength = strlen(json_encode($myAssocArray)); // is this correct??
...
$headers = array(
'Content-Type: application/json',
"Content-length: $contentLength"
);
Я получаю 100
ответы HTTP, что заставляет меня думать, что моя длина содержимого неверна. Примечание.Я знаю, что CURL может автоматически вычислять заголовок длины содержимого, но если я не включу этот заголовок для сервера, на который я отправляю это, они отправят ответ HTTP 411
(Требуемая длина).
Комментарии:
1. Какое значение вы отправляете в cURL,
json_encode($myAssocArray)
? Содержит ли значение многобайтовые символы? Если вы установите для длины содержимого недопустимое значение (1
), получите ли вы тот же ответ? Обычно100
код ответа означает, что все «В порядке», и вы можете продолжить запрос или проигнорировать ответ, если запрос завершен. Что указывает API, с которым вы взаимодействуете, для требований к запросу? НАПРИМЕР: отправьте заголовки, затем отправьте тело и т. Д.2. Почему бы вам не выполнить функцию count() в массиве?