@tatarrr95

Почему пробелы заменяются на + в CURL POST JSON?

Здравствуйте. Делаю post запрос через curl на чужой сервер, отправляю json, в котором есть определенный текст. В этом тексте автоматически почему то заменяются пробелы на +, как это исправить? На принимающей стороне нет возможности их заменить на пробелы, решение нужно только для моей стороны.

$data = array(
        'add' => array(
           0 => array(
               'element_id' => $addedLeadId,
               'element_type' => '2',
               'text' => $comment,
               'note_type' => '4',
               'created_at' => $date_call,
           ),
       ),
   );
   
   $link = 'https://' . $subdomain . '.amocrm.ru/api/v2/notes';

   $curl = curl_init();
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
   curl_setopt($curl, CURLOPT_USERAGENT, 'amoCRM-API-client/1.0');
   curl_setopt($curl, CURLOPT_URL, $link);
   curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
   curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
   curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
   curl_setopt($curl, CURLOPT_HEADER, false);
   curl_setopt($curl, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt'); 
   curl_setopt($curl, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt'); 
   curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
   curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
   $out = curl_exec($curl);
  • Вопрос задан
  • 648 просмотров
Решения вопроса 2
@remzalp
Программер чего попало на чем попало
https://www.php.net/manual/ru/function.curl-setopt.php
CURLOPT_POSTFIELDS
Если value является массивом, заголовок Content-Type будет установлен в значение multipart/form-data.
В этом случае заменяться не будут.

Хвост растет из функции
https://www.php.net/manual/ru/function.urlencode.php
"а пробелы закодированы как знак сложения (+)"
Ответ написан
@tatarrr95 Автор вопроса
Решил проблему тем, что в нужном тексте заменил все пробелы %20. На принимающей стороне пришли пробелы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы