0

我正在构建一个 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 );
4

1 回答 1

1

拥有一个有效的 SSL 证书以便从 API 中获取结果是一个很好的做法。尝试以下步骤

  1. 转到 Firefox 并访问https://gateway.watsonplatform.net/personality-insights/api/v3/profile
  2. 使用您的 Watson PI 凭据登录
  3. 单击 URL 栏最左侧的锁,然后单击更多信息。
  4. 点击查看证书 -> 详细信息
  5. 层次结构中的第一项是 IBM Watson PI 的 CA 证书,将其导出到您的机器。
  6. 然后只需在您的卷曲请求中使用这 3 行代码

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        curl_setopt($ch, CURLOPT_CAINFO , getcwd() . "\Your Certificate Location");
    
于 2017-04-20T14:58:06.327 回答