记录一下用cordova-plugin-file-transfer 和 https来传输文件
1. 如果目标网址https://website.com/拥有证书,应该不成问题
2. 目标地址有自签名证书:
app/java/org/apache/cordova/filetransfer/FileTransfer.java,添加如下代码:
static {
try {
trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier
(
(urlHostName, session) -> true
);
} catch (Exception e) {
}
}
private static void trustAllHttpsCertificates() {
try {
TrustAllManager[] trustAllCerts = new TrustAllManager[1];
trustAllCerts[0] = new TrustAllManager();
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
HttpsURLConnection.setDefaultSSLSocketFactory(
sc.getSocketFactory());
}
catch (Exception e) {}
}
private static class TrustAllManager implements X509TrustManager {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkServerTrusted(X509Certificate[] certs,
String authType) {
}
public void checkClientTrusted(X509Certificate[] certs,
String authType) {
}
}
前端JS:这部分http以及https并没有区别
let options = new FileUploadOptions()
options.fileKey = 'file'
options.fileName = 'myimg.jpg'
options.chunkedMode = false
// options.mimeType = "text/plain";
var headers = {'Authorization': ' ' + this.token}
options.headers = headers
let ft = new FileTransfer()
// 上传地址
let success = (res) => {
alert('文件上传成功')
}
let failure = (err) => {
console.info(err)
alert('文件上传失败')
}
let url = 'youuploadurl'
ft.upload(fileUrl, encodeURI(url), success, failure, options, true)
版权声明:本文为butyesbutno原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。