【发布时间】:2017-04-03 05:05:00
【问题描述】:
我正在构建一个 Web 应用程序并希望集成 IBM Watson Personality Insights API。 我正在使用 PHP,并且必须使用 Curl Library 来实现同样的目的
以下是 IBM 文档中提到的使用 Curl 的代码
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"
我如何在 PHP 中做到这一点?
我正在尝试这样做,但我得到一个空响应
$ch2 = curl_init("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 = 'Some dummy data';
curl_setopt_array( $ch2, array(
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $simple_data,
CURLOPT_HTTPHEADER => $request_headers,
CURLOPT_USERPWD => 'XXXX:YYYY',
)
);
$response2 = curl_exec( $ch2 );
【问题讨论】:
-
您的请求中的
--header "Accept: application/json"在哪里? -
我尝试添加 $request_headers[] = 'Accept: application/json';但没有任何改变@MathieuBorderé
-
尝试在脚本顶部添加
error_reporting(E_ALL); ini_set('display_errors', 'On');,然后在curl_exec之后添加var_dump(curl_error($ch2));,看看是否有任何错误。就像现在一样,你没有输出任何东西,所以它可能正在工作。var_dump($response2);节目是什么? -
它给出的错误是“SSL 证书问题:证书链中的自签名证书”,所以我在我的代码中添加了一个“CURLOPT_SSL_VERIFYPEER => false”。现在它没有给出任何错误,但响应包含 '{"code":400,"sub_code":"S00016","error":"No version provided"}' @drew010
标签: php curl libcurl ibm-watson personality-insights