我有一个简单的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);
但它只是给我一个空洞的回应。我做错了什么?我该如何解决这个问题?
答案 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()进行调试,它可以比你期望的更多场合保存你。