Отправка данных формы работает из POSTMAN, но не в PHP или Curl - PullRequest
0 голосов
/ 03 августа 2020

У меня есть бэкэнд API, который принимает PDF-файл в формате base64 и анализирует его. API работает в почтальоне. HTTP-запрос, показанный ниже, работает хорошо:

POST /convert HTTP/1.1
Host: 1.1.1.1:7000
Content-Type: application/x-www-form-urlencoded

data=JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvYmoKPDwgL0xlbmd0aCA1IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+Pg...SHORTENED FOR READABILITY....MDE3OTg1TMxMTNiYjAyNWI0NWRmZDhkZmE+IF0gPj4Kc3RhcnR4cmVmCjE4NDkxMwolJUVPRgo=

Однако, когда то же самое выполняется через PHP, как показано ниже, он возвращает ошибку 500:

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://1.1.1.1:7000/convert",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "data=JVBERi0xLjM...4Kc3RhcnR4cmVmCjE4NDkxMwolJUVPRgo%3D",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/x-www-form-urlencoded"
  ),
));
$response = curl_exec($curl);

curl_close($curl);
print_r($response);

Curl from терминал, выполняемый через сценарий оболочки, выдает слишком длинный список аргументов. Что могло быть не так?

...