Я использую плагин Cordova для записи аудио, а затем использую плагин для передачи файлов для загрузки этого аудио на сервер загрузки Spring в среде dev. Звук записывается и также может быть воспроизведен. Но при загрузке выдается следующее сообщение об ошибке через adb logcat:
FileTransfer: javax. net .ssl.SSLHandshakeException: java .security.cert.CertPathValidatorException: доверять привязке для пути сертификации не найден.
FileTransfer: в com. android .org.conscrypt.ConscryptFileDescriptorSocket.startHandshake (ConscryptFileDescriptorSocket. java: 236)
FileTransfer: в com. * .okhttp.internal.io.RealConnection.connectTls (RealConnection. java: 1480)
FileTransfer: at com. android .okhttp.internal.io.RealConnection.connectSocket (RealConnection. java : 1424)
FileTransfer: в com. android .okhttp.internal.io.RealConnection.connect (RealConnection. java: 1368)
FileTransfer: в com. android .okhttp.internal.http.StreamAllocation.findConnection (StreamAllocation. java: 219)
......................
SSL-сертификат был создан с помощью keytool и является самозаверяющим сертификатом.
logcat также disp Внизу лежит сообщение о том, что сертификат не заслуживает доверия:
------------------ Ненадежная цепочка: --------- -------------
CONSCRYPT: == Chain0 ==
CONSCRYPT: Версия: 3
CONSCRYPT: SubjectKeyIdentifier: 4160414dd4b7b5e4b585ea392e42085ae99ef6bc93ee114
CONSCRYPT: Серийный номер: 71deb7b
CONSCRYPT: SubjectDN: CN = Мой SSL-сертификат, OU = Моя команда, O = Моя компания, L = C, L = C, Мой = C, L = C = = SA
CONSCRYPT: IssuerDN: CN = Мой сертификат SSL, OU = Моя команда, O = Моя компания, L = Мой город, ST = Мой штат, C = SA
CONSCRYPT: Получить не раньше: пт 27 марта 14:12:59 GMT + 01: 00 2020
CONSCRYPT: Получить не после: вт. 09 января 14:12:59 GMT + 01: 00 2294
CONSCRYPT : Sig имя ALG: SHA256withRSA
1044 * CONSCRYPT: Подпись: 45d2e760ffc34f1be70017c3b5e731045e4f5368d94e76013f585ad6e6dfdbcc43a0273cf7bd788089693992808c6d976484a3ec08a8f1fab89fc12510988d21967e391d8d62456401c51a80dc88725d7c3b04c631e5cfb1743af5358f9 5a151e15052069d1a3d1f7a64148e2c1646c9ecb4f885b8fc3ae8355146a28ae34566db9c8af35b99cc6ff6d9881f324ae76003f069108bdc5e9a67a8e096799e792897175f78b0171dbaa854c0dac044769e15c156a09e871cd6fe6ad7b273933c15104c497c96b947b6e864b188b1624d36e50fcd782cc092a88c068f04f4138207f8f37b22477803cb79863078ec0cfae5b00e001e4acd5faa6179e945d87af07b 1046 * WifiTrafficPoller: TrafficStats TxPkts = 27970473 RxPkts = 29263068 TxBytes = 28155833135 RxBytes = 30517670560, Foreground UID = 10332 PKGNAME = com.karar.app TxPackets = 2292 RxPackets = 1632 TxBytes = 321406 RxBytes = 724040 05-01 23 : 55: 20.913 4288 4288 D SecStatusBarWifiView: updateState: WifiIconState (resId = 2131232622, видимый = true, ActivityId = 2131232628)
CONSCRYPT: Publi c ключ:
CONSCRYPT 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 CONSCRYPT: 82 01 0f 00 30 82 01 0a 02 82 01 01 00 86 40 94 87 eb 34 87 CONSCRYPT: 61 c9 5e 89 cb 01 44 2b ef 4a 45 1 c ef eb 68 b1 69 ee 46 ae
........................... ... .
Вот мой код HTML и JS:
function uploadFile() {
var fileURL = localStorage.getItem("question");
host = "https://192.168.0.103:8443";
var uri = encodeURI(host + "/uploadFile");
var params = {
}
var options = new FileUploadOptions();
options.fileKey = 'file';
options.fileName = fileURL.substr(fileURL.lastIndexOf('/')+1);
options.mimeType = "audio/m4a";
options.headers = {
'Authorization': "Bearer "+localStorage.getItem('token')
};
options.params = params;
options.chunkedMode = false;
var ft = new FileTransfer();
ft.upload(fileURL, uri, function(){
alert("Successfully updated Round Image");
}, function (err) {
console.log('There was an error uploading the media. Please try again later. Error: ' + err);
}, options, true);
}
function captureAudio() {
navigator.device.capture.captureAudio(captureSuccess, captureError);
}
function playMP3() {
media.play();
}
function captureError(e) {
console.log("capture error: "+JSON.stringify(e));
}
function captureSuccess(s) {
console.log("Success");
var a="<audio controls>"
a += "<source src='" + s[0].fullPath + "' type='video/mp4'>";
a += "</audio>";
localStorage.setItem("question", s[0].fullPath);
document.querySelector("#audioArea").innerHTML = a;
}
Используемые плагины:
У меня нет проблем с доступом к другим https-страницам через AJAX. Это сообщение об ошибке выдается только во время загрузки. Я что-то здесь упускаю? Или, если есть какой-либо другой лучший способ загрузить записанные Aud ios?
Спасибо