我不太确定Watson Analytics API是否有最近的更新,但事实上我的原始代码工作正常,我现在面临问题。
我们在php中创建了一个函数,它构建了一个名为csv的变量,然后执行curl将其按指定加载到API Explorer页面中。遵循代码的方式:
function populateDataset_Internal($ dsId,$ segmentId,$ strJsonColumns,$ strLine){
$curl = curl_init();
$csv = $strJsonColumns;
$csv .= $strLine;
echo $csv;
curl_setopt_array($curl, array(
CURLOPT_URL => "/data/v1/datasets/" . $dsId . "/content/" . $segmentId,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
curl_setopt($curl, CURLOPT_POSTFIELDS, $csv),
//CURLOPT_POSTFIELDS => $csv,
CURLOPT_HTTPHEADER => array(
"accept: text/csv",
"content-type: text/csv",
"cache-control: no-cache",
"authorization: Bearer " . $_SESSION["tokenl"],
"x-ibm-client-id: " . $_SESSION["XIBMCLIENTID"],
"x-ibm-client-secret: " . $_SESSION["XIBMCLIENTSECRET"]
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
echo "populateDataset_Internal:" . $response . " - " . $err ."<br/>";
return "";
}
$ csv包含txt / csv内容,如下例所示:
文件类型;地理;账户;工业;部门;名称; DateStart; HourStart; HOUR(HourStart); DateEnd; HourEnd; HOUR(HourEnd);状态 JOBType,巴西;β;金融; BANK;试验; 2016年2月2日; 00; 2016年2月2日; 01;完整的
这很顺利,直到将代码替换为API Explorer。从那时起,我们开始收到格式错误。在与WA Team支持交换一些电子邮件后,他们提供了其他源代码,但问题仍然存在。代码如上所列。
是否有人面临同样的问题,甚至不知道发生了什么?
答案 0 :(得分:0)
我使用Postman重现了这个问题。您需要删除或更新Accept标头。 API只返回application / json。我认为最近添加了Accept值的强制执行,这就是它曾经工作和停止的原因。返回的有效负载是不可接受的,我会要求团队解决这个问题。
看起来API Explorer中显示的示例也是错误的。