带有ssl的phonegap中的文件上传问题

时间:2013-07-11 14:26:48

标签: 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.

有任何建议如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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