Ich bin nicht ganz sicher, ob es kürzlich Updates zu Watson Analytics APIs gab, aber in der Tat funktionierte mein ursprünglicher Code richtig, ich bin jetzt mit Problemen konfrontiert.php - Watson Analytics - Returning missformed
Wir haben eine Funktion in PHP, die eine Variable mit dem Namen csv erstellt und führen Sie dann eine Curl, um es wie in API Explorer, Seite angegeben zu laden. Folgen, wie der Code ist:
Funktion 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 "";
}
die $ csv enthält txt/csv Inhalt, wie das Beispiel unten:
Filetype; Geographie; Konto; Industrie; Sector; Bezeichnung; DateStart; HourStart; HOUR (HourStart); DateEnd; HourEnd; HOUR (HourEnd); Stand Jobtype, Brasilien; Beta; Finanz; BANK;-Test; 02/02/2016; 00; 02/02/2016; 01; Vollständig
Dies funktionierte reibungslos, bis der Code in API Explorer ersetzt wurde. Seitdem haben wir begonnen, fehlerhaften Fehler zu erhalten. Nach dem Austausch einiger E-Mails mit dem WA-Team-Support haben sie anderen Quellcode bereitgestellt, aber das Problem besteht weiterhin. Der Code ist oben aufgeführt.
Hatte jemand das gleiche Problem oder hat er eine Idee?
Hallo Rob, zuerst vielen Dank für Ihren Versuch! Ich habe die Kopfzeile der Accept-Anweisung als application/json aktualisiert und der Fehler bleibt bestehen. Ich habe auch versucht, die Zeile zu kommentieren und der Fehler wird immer noch zurückgegeben. Irgendein anderer Versuch im Sinn? –
Sie müssen den Antwortcode, die Header und den zurückgegebenen Text anzeigen. Der Fehler "Malformed" stammt von PHP, weil Sie versuchen, eine Fehlerantwort genauso zu behandeln wie eine Erfolgsantwort. –