【问题标题】:Emotion API Project Oxford base64 imageEmotion API 项目牛津 base64 图像
【发布时间】:2016-07-21 13:21:33
【问题描述】:

我正在尝试在 PhoneGap 应用程序中通过 JavaScript 调用 Emotion Api。我将图像编码为 base64 并验证数据可以通过在线工具之一进行解码。这是我在网上找到的要使用的代码。

var apiKey = "e371fd4333ccad2"; //(你可以在现场得到一个免费的钥匙,这是在这里修改的)

//apiUrl:API 的基本 URL。通过 API 文档了解其他 API 的含义 var apiUrl = "https://api.projectoxford.ai/emotion/v1.0/recognize";

“文件”是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 内容类型:应用程序/八位字节流 主持人:api.projectoxford.ai Ocp-Apim-订阅密钥: ••••••••••••••••••••••••••••••• 内容长度:129420

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/...

我回来了:

编译指示:无缓存 缓存控制:无缓存 日期:格林威治标准时间 2016 年 4 月 1 日星期五 16:23:09 X-Powered-By: ASP.NET 内容长度:60 内容类型:应用程序/json;字符集=utf-8 过期:-1

{ “错误”: { “代码”:“坏人”, “消息”:“无效的面部图像。” } }

我现在不确定您是否可以通过 Javascript 发送这样的图像。谁能告诉我我的 javascript 是否正确,或者他们是否可以将编码的 base64 字符串图像发送到网站。

感谢您的帮助 时间

【问题讨论】:

    标签: base64 emotion microsoft-cognitive


    【解决方案1】:

    此 API 不接受图像的数据 URI。您需要做的是将其转换为二进制 blob。尽管此 answer 用于不同的 Project Oxford API,但您可以应用相同的技术。

    【讨论】:

    • 谢谢,这就是问题所在,使用 blob 效果很好...再次感谢...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2014-02-27
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    相关资源
    最近更新 更多