У меня есть simpel php Curl call, чтобы получить что-то от curl естественного понимания языка.
Это мой код:
$report = strtoupper($report);
$username = 'xxx';
$password = 'xxx';
$url = 'https://gateway.watsonplatform.net/natural-language-understanding /api/v1/analyze?version=2017-02-27&text=Helloethics&features=entities,sentiment,keywords';
// Set post arguments for call
$post_args = array(
'text' => $report
);//Set header arguments for call
$header_args = array(
'Content-Type: text/plain',
'Accept: application/json'
);// Set options for REST call via curl
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_USERPWD, "xxx:xxx");
curl_setopt($curl, CURLOPT_HTTPHEADER, $header_args);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_args);
$status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);print_r($status_code);
// Actual REST call via curl and cleanup (closing) of curl call
$result = curl_exec($curl);
echo "print:";print_r($result);
curl_close($curl);
Но это просто приносит мне пустой ответ. Что я делаю не так? И как я могу это исправить?
Возможно, дополнительное пространство в переменной $ url вызывает проблемы.
Однако, если вы уверены, что это не так, попробуйте использовать var_dump($result)
вместо print_r($result)
,
Вы принимаете данные JSON, которые изначально возвращаются в виде строки. Я думаю, var_dump () подтвердит, что вам нужно использовать $resultArray = json_decode($result, true);
прежде чем вы сможете использовать print_r для отображения вашего ответа cURL.
Я также рекомендую добавить <pre></pre>
теги вокруг вашего вывода для удобства чтения … хотя личные предпочтения.
Если вышеуказанное решение не работает, что вы получаете, когда делаете var_dump($status_code)
?
TLDR — всегда используйте var_dump () для отладки, это может спасти вас в большем количестве случаев, чем вы ожидаете.
Других решений пока нет …