0

我一直在尝试通过将图像本地存储在我的文件系统上来解码二维码。我正在尝试使用 HTML5/Javascript 创建一个 Windows 8 Metro 应用程序来执行此操作。我可以生成代码,但我在解码时遇到问题。

我确实参考了这些以前的线程

有人知道 Windows 8 Metro 应用程序的 QR 码阅读器库吗?

Windows Store 应用中的二维码

此后使用 esponce Web 服务并向http://www.esponce.com/api/v3/decode?format=png发出简单的 HTTP-POST 请求,正文中包含图像数据,但由于 404 响应为空错误,因此没有返回任何内容。这是我尝试相同的片段:

var picDiv = document.getElementById("picDiv");
var picturesLibrary = Windows.Storage.KnownFolders.picturesLibrary;

picturesLibrary.getFileAsync("code.bmp").then(
    function completeFile(file) {
    return file.openAsync(Windows.Storage.FileAccessMode.readWrite);
    xhrDiv.innerText = "File Opened";
}).then(
    function completeStream(stream) {
        // Do processing. 
            var blob = MSApp.createBlobFromRandomAccessStream("image/bmp", stream);
            xhrDiv1.innerText = stream;
     return WinJS.xhr({ type: "POST", url:"http://www.esponce.com/api/v3/decode>", data: blob });
}).then(
    function (request) {
        picDiv.textContent = "uploaded file";
        picDiv.innerText = request.statusText;
        picDiv.innerText = request.status;

      }, 
    function (request) {
        picDiv.textContent = "error uploading file";
        picDiv.innerText = request.statusText;
    //    picDiv.innerText = request.statusText;
      //  picDiv.innerText = request.status;


    });

请帮助我弄清楚上述方法有什么问题。

4

1 回答 1

0

仅当 URL 不存在时才会出现错误 404,否则应该有不同的错误代码。可以通过查看响应 HTTP 标头X-Api-Error来诊断问题。

首先,从 URL 字符串中删除 ' > ' 字符并添加格式参数以防万一

return WinJS.xhr({ type: "POST", url:"http://www.esponce.com/api/v3/decode?format=png", data: blob });

然后,如果 BMP 不起作用,请尝试上传PNG 图像。Mime 类型应设置为image/png

或者,您可以尝试NuGet的 Esponce API 库

于 2013-01-07T20:48:29.520 回答