IBM Watson重新调整空回应

时间:2018-01-23 16:04:21

标签: php curl watson

我有一个简单的php 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);

但它只是给我一个空洞的回应。我做错了什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

$ 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()进行调试,它可以比你期望的更多场合保存你。