android - 使用 ssl 的 phonegap 中的文件上传问题

标签 android file-upload ssl cordova

我们的应用程序中有图片上传功能。此功能在我们使用 HTTP 时工作正常,但在启用 SSL 时失败。在网上冲浪后,我得到了一些代码,即在上传方法中添加 true 属性

ft.upload(fileuri, encodeURI(PublishUrl+"FileUpload"), win, fail, options,true);

但是没有成功

错误日志

07-11 19:44:40.651: E/FileTransfer(17526):    {"target":"Url","source":"file:\/\/\/storage\/emulated\/0\/PopImg\/cache\/Car\/Crazy_Racer\/sm_1_(10).jpg","http_status":0,"code":3}
07-11 19:44:40.651: E/FileTransfer(17526): java.net.SocketException: Socket is closed
07-11 19:44:40.651: E/FileTransfer(17526):            at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.checkOpen(OpenSSLSocketImpl.java:232)
07-11 19:44:40.651: E/FileTransfer(17526):            at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:245)
07-11 19:44:40.651: E/FileTransfer(17526):            at libcore.net.http.HttpConnection.setupSecureSocket(HttpConnection.java:209)
07-11 19:44:40.651: E/FileTransfer(17526):            at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:478)
07-11 19:44:40.651: E/FileTransfer(17526):            at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:442)
07-11 19:44:40.651: E/FileTransfer(17526):            at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
07-11 19:44:40.651: E/FileTransfer(17526):            at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
07-11 19:44:40.651: E/FileTransfer(17526):            at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81)
07-11 19:44:40.651: E/FileTransfer(17526):            at libcore.net.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:165)
07-11 19:44:40.651: E/FileTransfer(17526):            at org.apache.cordova.FileTransfer$1.run(FileTransfer.java:344)
07-11 19:44:40.651: E/FileTransfer(17526):            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
07-11 19:44:40.651: E/FileTransfer(17526):            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
07-11 19:44:40.651: E/FileTransfer(17526):            at java.lang.Thread.run(Thread.java:856)
07-11 19:44:40.651: E/FileTransfer(17526): Failed after uploading 0 of 18171 bytes.

有什么解决办法吗?

最佳答案

出于测试目的,我的移动流量通过 Fiddler 进行路由。Android 设备可能无法使用 Fiddler 使用的默认 HTTPS 拦截证书。通过禁用 fiddler ,它起作用了。

关于android - 使用 ssl 的 phonegap 中的文件上传问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17596066/

相关文章:

c# - SSL 客户端/服务器相互认证

android - 在 Android 应用程序中嵌入较新版本的 WebKit

位桶管道中的 ANDROID_HOME

android - Android 上带有 RenderScript 的 RSInvalidStateException

php - 使用ffmpeg php时如何知道何时完成转换?

java - TaxCore - 使用智能卡证书请求 token

java - 当我的任务在 UI 线程中执行时,在前台显示一个旋转的轮子

rest - 如何使用 Dart http 库中的 StreamedRequest 上传文件?

express - 为什么在多部分上传到在 aws lambda 中运行的 express 过程中文件被损坏?

ruby - SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 读取服务器 hello A