Как получить ответ json, используя Curl от IBM Watson

Я пытаюсь написать простое веб-приложение, которое вызывает API-интерфейс IBM Watson NLC для классификации текста, который пользователь вводит в текстовое поле.

Я создал следующее, и оно работает, если одно слово вводится и не удается, если дано предложение. В чем дело? любая помощь пожалуйста.

Язык ввода будет арабский.

Файл 1 — NLCApp.php

<form action="post-method.php" method="POST">

<input type="text" name="texta" placeholder="Text to Query" multiple />

<input type="submit" name="submit" />

</form>

Файл 2 — Postmethod.php

<?php

$wtext= ($_POST['texta']);
//echo $wtext;

$url = "https://gateway.watsonplatform.net/natural-language-classifier/api/v1/classifiers/{My Classifier ID}/classify?text=$wtext";

$headers = array('Content-Type:application/json');

$ch = curl_init();

curl_setopt($ch, CURLOPT_USERPWD, '{My Classifier Username:My Classifier Password}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

//curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_args));

$result = curl_exec($ch);

if ($result === FALSE) {die('Send Error: ' . curl_error($ch)); }
curl_close($ch);

echo $result;

?>

Я отстой в кодировании, и большая часть этого небольшого фрагмента кода копируется из нескольких пользовательских сообщений в stackoverflow и других справочных форумах.

Любая помощь по заполнению этого пожалуйста.

0

Решение

Пожалуйста, попробуйте это:

  1. $ch = curl_init($url);
  2. удалить неиспользуемые заголовки
  3. добавить обработку ошибок

<?php

$wtext= ($_POST['texta']);
echo "Passed text: ".$wtext;

$url  = "https://gateway.watsonplatform.net/natural-language-classifier/api/v1/classifiers/{My Classifier ID}/classify?text=";
$url .= urlencode($wtext);

// $headers = array('Content-Type:application/json');

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_USERPWD, '{My Classifier Username:My Classifier Password}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// curl_setopt($ch, CURLOPT_URL, $url);
// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

//curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_args));

$result = curl_exec ($ch);
// also get the error and response code
$errors = curl_error($ch);
$response = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

var_dump($result);
var_dump($errors);
var_dump($response);

?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]