Ich versuche über JavaScript mit einer PhoneGap App die Emotion Api anzurufen. Ich habe das Bild in base64 codiert und überprüft, dass die Daten von einem der Online-Tools entschlüsselt werden können. Dies ist der Code, den ich im Web gefunden habe.Emotion API Projekt Oxford base64 image
var apiKey = "e371fd4333ccad2"; // (Sie können einen kostenlosen Schlüssel vor Ort erhalten, der hier geändert wird)
// apiUrl: Die Basis-URL für die API. Finden Sie heraus, was dies für andere APIs ist über die API-Dokumentation var apiUrl = "https://api.projectoxford.ai/emotion/v1.0/recognize";
"Datei" ist die Base64-Zeichenfolge.
function CallAPI(file, apiUrl, apiKey)
{
// console.log("file=> " +file);
$.ajax({
url: apiUrl,
beforeSend: function (xhrObj) {
xhrObj.setRequestHeader("Content-Type", "application/octet-stream");
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key", apiKey);
},
type: "POST",
data: file,
processData: false
})
.done(function (response) {
console.log("in call api a");
ProcessResult(response);
})
.fail(function (error) {
console.log(error.getAllResponseHeaders())
});
}
function ProcessResult(response)
{
console.log("in processrult");
var data = JSON.stringify(response);
console.log(data);
}
Ich habe dies zurück:
Expires: -1
Access-Control-Allow-Origin: *
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 60
Date: Fri, 01 Apr 2016 13:34:32 GMT
Content-Type: application/json; charset=utf-8
X-Powered-By: ASP.NET
Also habe ich versucht, ihre Konsole Testseite. https://dev.projectoxford.ai/docs/services/5639d931ca73072154c1ce89/operations/563b31ea778daf121cc3a5fa/console
Ich kann ein Bild wie Ihre "example.com/man.jpg" einfügen und es funktioniert super. aber wenn ich das gleiche Bild nehme und es als Basis 64 Bild kodiert habe, bekomme ich nur "Bad Body". Ich habe es sowohl als Inhaltstyp "application/octet-stream" als auch "application/json" probiert und bekomme den gleichen Fehler . Probe des codierten sieht like..and http Anfrage
POST https://api.projectoxford.ai/emotion/v1.0/recognize HTTP/1.1 Content-Type: application/octet-stream Host: api.projectoxford.ai Ocp-APIM-Abonnement-Key: ••• ••••••••••••••• Content-Length: 129420
Daten: image/jpeg; base64,/9j/4AAQSkZJRgABAQAASABIAAD/...
i zurück:
Pragma: no -cache Cache-Steuerung: no-cache Datum: Fr, 01 Apr 2016 16:23:09 GMT X-Powered-by: ASP.NET Inhaltslänge: 60 Content-Type: application/json; charset = UTF-8 Gültig bis:
-1{ "error": { "Code": "BadBody" "message": "Invalid Gesichtsbild." } }
Ich bin jetzt nicht sicher, ob Sie ein Bild so oder nicht von Javascript senden können. Kann mir jemand sagen, ob mein Javascript korrekt ist oder ob es ein codiertes Base64-String-Bild an die Site senden kann.
Dank für Ihre Hilfe tim
danke, das war das Problem, mit dem Blob funktioniert es super ... wieder danke ... – user852566