php - Watson Analytics - 返回格式不正确

问题描述:

我不太确定Watson Analytics API是否有最新的更新,但实际上我的原始代码工作正常,现在我面临着问题。php - Watson Analytics - 返回格式不正确

我们在php中创建了一个名为csv的变量,然后执行curl将其加载到指定的API Explorer页面中。按照代码如何是:

功能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内容,例如该示例以下:

JOBType,巴西;贝塔尔;金融;银行;测试;小时; 02/02/2016; 00; 02/02/2016; 01;完成

在代码被替换到API Explorer之前,这一切都很顺利。从那以后,我们开始收到格式错误。在与WA团队支持交换了一些电子邮件后,他们提供了其他源代码,但问题依然存在。代码在上面列出。

有人面对同样的问题,甚至有什么想法吗?

我使用邮差转载了这个问题。您需要删除或更新Accept标头。该API只返回application/json。我认为最近增加了Accept值的执行,这就是为什么它曾经工作和停止。返回的有效载荷是不可接受的,我会要求团队解决这个问题。

它也看起来像API Explorer中显示的示例是错误的。

+0

Hello Rob,首先感谢您的尝试!我已将接受语句中的标头更新为应用程序/ json,并且错误仍然存​​在。我也试过对该行进行注释,并且仍然返回格式错误。任何其他的尝试? –

+0

您需要查看返回的响应代码,标题和正文。畸形的错误来自PHP,因为您试图将错误响应视为成功响应。 –