#javascript #android #ssl-certificate #client-certificates
Вопрос:
Я разрабатываю приложения для Android при следующих условиях.
**
- Windows 10
- Node.js 14.16
- Android studio 4.1
- Инструменты для сборки Android SDK 30.0.3
**
Когда я установил сертификат клиента и попытался получить файл вложения в своих приложениях, я обнаружил ошибку HTTP 403.7.
Это происходит только в том случае, если я установил сертификат клиента IIS как «Требуется». Затем я увидел файлы журнала IIS, и было записано следующее.
●Client Certificate IIS Settings : Require -> NG
2021-06-01 01:38:31 10.0.0.4 GET /app/testsvc/GetAttachmentFile CompCode=testamp;LoginAccount=testaccountamp;FileId=2amp;FileName=添付資料(Word).docxamp;_=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=testamp;LoginAccount=testaccountamp;fileId=2amp;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=testamp;LoginAccount=testaccountamp;FileId=1amp;FileName=添付資料(PDF).pdfamp;_=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=testamp;LoginAccount=testaccountamp;fileId=1amp;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 "amp;LoginAccount=" common.LoginAccount "amp;fileId=" fileDataCond.FileId;
if (platform.substr(0,6) == "iPhone" || platform.substr(0,3) == "iOS") {
url = url "amp;fileName=" fileDataCond.FileName;
window.open(encodeURI(url), "_blank");
} else {
url = url "amp;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');
}
);
} }