PhoneGap アプリで JavaScript を使用して Emotion Api を呼び出そうとしています。画像を base64 にエンコードし、オンライン ツールの 1 つでデータをデコードできることを確認しました。これは、使用するためにWebで見つけたコードです。
var apiKey = "e371fd4333ccad2"; //(サイトで無料のキーを取得できます。これはここで変更されています)
//apiUrl: API のベース URL。API ドキュメントを介して、他の API のこれが何であるかを確認してください。
「ファイル」は base64 文字列です。
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);
}
私はこれを取り戻しました:
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
だから私は彼らのコンソールテストページを試しました。 https://dev.projectoxford.ai/docs/services/5639d931ca73072154c1ce89/operations/563b31ea778daf121cc3a5fa/console
「example.com/man.jpg」のような画像を入れることができ、うまく機能します。しかし、同じ画像を取得して Base 64 画像としてエンコードすると、「Bad Body」だけが得られます。コンテンツ タイプ「application/octet-stream」と「application/json」の両方で試してみたところ、同じエラーが発生しました。 . エンコードされたサンプルは次のようになります..そして http リクエスト
POST https://api.projectoxford.ai/emotion/v1.0/recognize HTTP/1.1 Content-Type: application/octet-stream Host: api.projectoxford.ai Ocp-Apim-Subscription-Key: ••••• ••••••••••••••••••••••••• コンテンツの長さ: 129420
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/...
私は戻ってきます:
プラグマ: no-cache Cache-Control: no-cache Date: Fri, 01 Apr 2016 16:23:09 GMT X-Powered-By: ASP.NET Content-Length: 60 Content-Type: application/json; charset=utf-8 有効期限: -1
{ "error": { "code": "BadBody", "message": "無効な顔画像です。" } }
このような画像を Javascript から送信できるかどうかはわかりません。私のjavascriptが正しいかどうか、またはエンコードされたbase64文字列画像をサイトに送信できるかどうか、誰か教えてください。
助けてくれてありがとうティム