首页 > 解决方案 > 当我下载附件文件时,我收到 IIS HTTP 错误 403.7

问题描述

我正在以下条件下开发 android 应用程序。

**

  1. 视窗 10
  2. 节点.js 14.16
  3. 安卓工作室 4.1
  4. Android SDK 构建工具 30.0.3

**

当我安装客户端证书并尝试在我的应用程序中获取附件文件时,我发现了 HTTP 错误 403.7。

仅当我将 IIS 客户端证书设置为“要求”时才会发生这种情况。然后我看到了 IIS Log Files 并记录了以下内容。

●Client Certificate IIS Settings : Require -> NG

2021-06-01 01:38:31 10.0.0.4 GET /app/testsvc/GetAttachmentFile CompCode=test&LoginAccount=testaccount&FileId=2&FileName=%E6%B7%BB%E4%BB%98%E8%B3%87%E6%96%99%EF%BC%88Word%EF%BC%89.docx&_=1622511492429 443 - 192.168.0.1 Mozilla/5.0+(Linux;+Android+11;+sdk_gphone_x86+Build/RSR1.201013.001;+wv)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Version/4.0+Chrome/83.0.4103.106+Mobile+Safari/537.36 - 200 0 0 658
2021-06-01 01:38:31 10.0.0.4 GET /app/test.svc/GetAttachmentFile CompCode=test&LoginAccount=testaccount&fileId=2&fileName=fileName 443 - 192.168.0.1 Dalvik/2.1.0+(Linux;+U;+Android+11;+sdk_gphone_x86+Build/RSR1.201013.001) - 403 7 5 505

●Client Certificate IIS Settings : Ignore -> OK

2021-06-01 01:41:05 10.0.0.4 GET /app/test.svc/GetAttachmentFile CompCode=test&LoginAccount=testaccount&FileId=1&FileName=%E6%B7%BB%E4%BB%98%E8%B3%87%E6%96%99%EF%BC%88PDF%EF%BC%89.pdf&_=1622511646749 443 - 192.168.0.1 Mozilla/5.0+(Linux;+Android+11;+sdk_gphone_x86+Build/RSR1.201013.001;+wv)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Version/4.0+Chrome/83.0.4103.106+Mobile+Safari/537.36 - 200 0 0 1171
2021-06-01 01:41:05 10.0.0.4 GET /app/test.svc/GetAttachmentFile CompCode=test&LoginAccount=testaccount&fileId=1&fileName=fileName 443 - 192.168.0.1 Dalvik/2.1.0+(Linux;+U;+Android+11;+sdk_gphone_x86+Build/RSR1.201013.001) - 200 0 0 218

任何人都知道如何解决此错误并修复设置?先感谢您。

下面的示例源。


function getAttachmentFileSuccess(result) {
    var url = decodeURIComponent(common.ConnectUrl) + "test.svc/GetAttachmentFile?CompCode=" + 
        common.CompCode + "&LoginAccount=" + common.LoginAccount + "&fileId=" + fileDataCond.FileId;
    if (platform.substr(0,6) == "iPhone" || platform.substr(0,3) == "iOS") {
        url = url + "&fileName=" + fileDataCond.FileName;
        window.open(encodeURI(url), "_blank");
    } else {
        url = url + "&fileName=fileName";
        var fileTransfer = new FileTransfer();
        var filePath = "/sdcard/app/" + fileDataCond.FileName;
        fileTransfer.download(
                encodeURI(url),
                filePath,
                function(entry){
                    navigator.notification.alert(
                            "Success",  // message
                            function(){},         // callback
                            'Success',            // title
                            'OK');
                },
                function(error){
                    navigator.notification.alert(
                            'Failed',  // message
                            function(){},         // callback
                            'Error',            // title
                            'OK');
                }
        );
    } }

标签: javascriptandroidssl-certificateclient-certificates

解决方案


推荐阅读