【问题标题】:php - Watson Analytics - Returning malformedphp - Watson Analytics - 返回格式错误
【发布时间】:2016-11-29 13:16:02
【问题描述】:

我不太确定 Watson Analytics API 最近是否有任何更新,但事实上我的原始代码运行正常,但我现在遇到了问题。

我们在 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,Brazil;Beta;Financial;BANK;Test;02/02/2016;00;02/02/2016;01;完成

在将代码替换到 API Explorer 之前,这一直很顺利。从那时起,我们开始收到malformed error。在与 WA Team 支持人员交换了一些电子邮件后,他们提供了其他源代码,但问题仍然存在。代码如上。

是否有人遇到过同样的问题,甚至对正在发生的事情有所了解?

【问题讨论】:

    标签: php ibm-watson malformed watson


    【解决方案1】:

    我使用 Postman 重现了该问题。您需要删除或更新 Accept 标头。 API 只返回 application/json。我认为最近添加了 Accept 值的强制执行,这就是它曾经工作并停止的原因。返回的有效载荷不可接受,我将要求团队解决此问题。

    API Explorer 中显示的示例似乎也有问题。

    【讨论】:

    • 您好 Rob,首先感谢您的尝试!我已将 accept 语句上的标题更新为 application​n/json 并且错误仍然存​​在。我也尝试评论该行并且仍然返回格式错误的错误。还有其他尝试吗?
    • 您需要查看返回的响应代码、标头和正文。 Malformed 错误来自 PHP,因为您试图将错误响应视为成功响应。
    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 2022-01-21
    • 2018-03-16
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 2018-11-03
    相关资源
    最近更新 更多