如何从android phonegap应用程序中的https URI下载文件



如何在android中使用https协议下载文件?我试着用它,但总是出错。

我的下载代码:

var fileTransfer = new FileTransfer();
fileTransfer.download(
task_url,
fileListDir + fileName,
function(entry) {
mylog("download complete: " + entry.fullPath);
},
function(error) {
mylog("download error source " + error.source);
mylog("download error target " + error.target);
mylog("upload error code" + error.code);
});

我的日志

11-19 13:56:13.339:E/FileTransfer(17969):{"target":"/mnt/sdcard/task1/Picture_4.jpg","source":"https://91.228.199.95/ksiywFac63f2hs/fotos.gleb/Picture_4.jpg","代码":3}11-19 13:56:13.339:E/FileTransfer(17969):javax.net.ssl.ssl握手异常:java.security.cert.CertPathValidatorException:的信任锚点找不到证书路径。11-19 13:56:13.339:E/FileTransfer(17969):位于org.apache.h和谐.xnet.provider.jsseOpenSSLSocketImpl.startHandshake(OpenSSLSocket Impl.java:477)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.h和谐.xnet.provider.jsseOpenSSLSocketImpl.startHandshake(OpenSSLSocket Impl.java:328)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.heamony.luni.internal.netwww.protocol.HttpConnection.setupSecureSocket(HttpConnection.java:185)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.hharmony.luni.internal.netwww.protocol.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:433)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.hharmony.luni.internal.netwww.protocol.HttpsURLConnectionImpl$HttpsEngine.makeConnection(HttpsURLConnectionImpl.java:378)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.heamony.luni.internal.netwww.protocol.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:205)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.hharmony.luni.internal.netwww.protocol.httpsURLConnection Impl.connect(HttpsURLConnection impl.java:152)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.codova.FileTransfer。下载(FileTransfer。java:486)11-1913:56:13.339:E/FileTransfer(17969):在org.apache.codova.FileTransfer。execute(FileTransfer。java:88)11-1913:56:13.339:E/FileTransfer(17969):在org.apache.codova.api.PluginManager$1.run(PluginManager.java:231)11-19 13:56:13.339:E/FileTransfer(17969):在java.lang.Thread.run(Thread.java:1019)11-19 13:56:13.339:E/FileTransfer(17969):原因:java.security.cert.CertificateException:java.security.cert.CertPathValidatorException:的信任锚点找不到证书路径。11-19 13:56:13.339:E/FileTransfer(17969):位于org.apache.h和谐.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:161)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.h和谐.xnet.provider.jsse.OOpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocket Impl.java:664)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.h和谐.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native方法)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.h和谐.xnet.provider.jsseOpenSSLSocketImpl.startHandshake(OpenSSLSocket Impl.java:474)11-19 13:56:13.339:E/FileTransfer(17969):。。。10更多11-1913:56:13.339:E/FileTransfer(17969):原因:java.security.cert.CertPathValidatorException:的信任锚点找不到证书路径。11-19 13:56:13.339:E/FileTransfer(17969):位于org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi.engineValidate(PKIXCertPath ValidatorSpi.java:207)11-19 13:56:13.339:E/FileTransfer(17969):在java.security.cert.CertPathValidator.validate(CertPathValidator.java:197)11-19 13:56:13.339:E/FileTransfer(17969):在org.apache.h和谐.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:156)11-19 13:56:13.339:E/FileTransfer(17969):。。。13个以上

答案是将旧的cordova更改为cordova 2.2.0,并在代码中写入true,有些

var fileTransfer = new FileTransfer();
fileTransfer.download(
task_url,
fileListDir + fileName,
function(entry) {
mylog("download complete: " + entry.fullPath);
},
function(error) {
mylog("download error source " + error.source);
mylog("download error target " + error.target);
mylog("upload error code" + error.code);
}, true);

这就是工作!!!谢谢Simon Mac Donald!!

最新更新