2016-11-29 15 views
0

Я не совсем уверен, были ли какие-либо последние обновления API-интерфейсов Watson Analytics, но на самом деле мой исходный код работал правильно, теперь у меня проблемы.php - Watson Analytics - Возвращение malformed

У нас есть функция в php, которая построила переменную csv, а затем выполнит завиток, чтобы загрузить ее, как указано на странице 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 содержание, такой пример ниже:

FileType; География; данные; промышленность; сектор; Имя; DateStart; HourStart; ЧАС (HourStart); DateEnd; HourEnd; ЧАС (HourEnd) Статус JOBType, Бразилия; Бета; Финансовый; BANK; испытание; 02/02/2016; 00; 02/02/2016; 01; Завершить

Это плавная работа, пока код не будет заменен в API Explorer. С тех пор мы начали получать ошибочной ошибкой. После обмена некоторыми сообщениями с поддержкой WA Team они предоставили другой исходный код, но проблема не устранена. Код указан выше.

Неужели кто-то сталкивается с той же проблемой или даже имеет представление о том, что происходит?

ответ

0

Я воспроизвел проблему, используя Postman. Вам необходимо удалить или обновить заголовок Accept. API только когда-либо возвращает application/json. Я думаю, что принудительное добавление значения Accept было добавлено недавно, поэтому он работал и останавливался. Возвращенная полезная нагрузка неприемлема, я попрошу команду исправить это.

Похоже, что образец, отображаемый в API Explorer, неверен.

+0

Привет, Роб, во-первых, спасибо за вашу попытку! Я обновил заголовок инструкции accept как applicationatio n/json, и ошибка сохраняется. Я попытался также прокомментировать строку, и ошибка Malformed все еще возвращается. Есть ли другие вопросы? –

+0

Вам нужно посмотреть код ответа, заголовки и тело. Ошибка Malformed от PHP, потому что вы пытаетесь обработать ответ об ошибке так же, как и ответ успеха. –