Мне нужно воссоздать это в PHP:перевод «данные-двоичный» из Curl в PHP
curl -X POST --user <username>:<password>
--header "Content-Type: text/plain;charset=utf-8"
--header "Accept: application/json"
--data-binary @<filename>
"https://gateway.watsonplatform.net/personality-insights/api/v3/profile"
Я получил это:
$request_headers = array();
$request_headers[] = 'Content-Type: text/plain;charset=utf-8';
$request_headers[] = 'Content-Language: en';
$request_headers[] = 'Accept-Language: en';
$simple_data = 'washingtonpost by the intelligence community';
curl_setopt_array($ch2, array(
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $simple_data,
CURLOPT_HEADER => $request_headers,
CURLOPT_USERPWD => 'XXXX:YYYY',
)
);
$response2 = curl_exec($ch2);
Что мой код не учитывает это часть --data-binary
, но я не уверен, как «перевести» это на PHP. Кроме того, можно ли использовать двоичный код данных с открытым текстом (API принимает его) вместо JSON?
В вашем коде 'CURLOPT_HEADER' должен быть' CURLOPT_HTTPHEADER' для установки заголовков запросов. В противном случае POSTFIELDS является правильным, как и в пользовательском Content-Type. – drew010
@ drew010 Это была именно эта проблема! Спасибо! Если вы представите в качестве ответа, я могу согласиться. Ценить это. – jonmrich