2010-09-16 52 views
0

我有做过http://blah.com现在我已经被要求使用https://blah.comHttps在Android上返回404与DefaultHttpClient?

前者的作品和后来的失败,与网络I/O错误的HTTP请求。有没有我需要的客户端缺少的参数设置?

的URL请求:

D/MyAppWebservice(23142): http-transform :) [https://cdp.mobibob.com:8151/DoTransaction] 

以下是日志:

E/MyAppContentProvider(23142): com.mobibob.myapp.MyAppExceptions$ParseException: Network or I/O error calling web service. 
W/System.err(23142): com.mobibob.myapp.MyAppExceptions$ParseException: Network or I/O error calling web service. 
W/System.err(23142): at com.mobibob.myapp.MyAppWebservice.queryApi(MyAppWebservice.java:558) 
W/System.err(23142): at com.mobibob.myapp.MyAppContentProvider.queryWebservice(MyAppContentProvider.java:751) 
W/System.err(23142): at com.mobibob.myapp.MyAppContentProvider.query(MyAppContentProvider.java:440) 
W/System.err(23142): at android.content.ContentProvider$Transport.query(ContentProvider.java:130) 
W/System.err(23142): at android.content.ContentResolver.query(ContentResolver.java:202) 
W/System.err(23142): at com.mobibob.myapp.ui.DownloadActivity.goGenDownloadTransaction(DownloadActivity.java:168) 
W/System.err(23142): at com.mobibob.myapp.ui.DownloadActivity$DownloadTransaction.doInBackground(DownloadActivity.java:90) 
W/System.err(23142): at com.mobibob.myapp.ui.DownloadActivity$DownloadTransaction.doInBackground(DownloadActivity.java:1) 
W/System.err(23142): at android.os.AsyncTask$2.call(AsyncTask.java:185) 
W/System.err(23142): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
W/System.err(23142): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
W/System.err(23142): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 
W/System.err(23142): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 
W/System.err(23142): at java.lang.Thread.run(Thread.java:1096) 
W/System.err(23142): Caused by: java.io.IOException: SSL handshake failure: I/O error during system call, Unknown error: 0 
W/System.err(23142): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.nativeconnect(Native Method) 
W/System.err(23142): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:305) 
W/System.err(23142): at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:92) 
W/System.err(23142): at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:321) 
W/System.err(23142): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:129) 
W/System.err(23142): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
W/System.err(23142): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
W/System.err(23142): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348) 
W/System.err(23142): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
W/System.err(23142): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
W/System.err(23142): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
W/System.err(23142): at com.mobibob.myapp.MyAppWebservice.queryApi(MyAppWebservice.java:510) 
W/System.err(23142): ... 13 more 

回答

1

的Https几乎总是意味着正在使用不同的端口(标准HTTP => 80;标准的https => 443)。你有一个硬编码端口(8151)。我猜测https servlet正在侦听不同的端口。

或者您正尝试连接到不支持https的服务器。

+1

明天我会检查港口。服务器可能没有切换对此服务的支持,因为它刚刚被作为一项要求进行了讨论。我被指示尽快切换 - 但也许这太S :) – mobibob 2010-09-17 05:11:31

+0

它是端口...我有一些其他问题,包括内容类型,但从网络I/O改为200 OK与应用程序响应。我给你答案。谢谢! – mobibob 2010-09-19 04:56:30

+0

顺便说一句 - 我的网站接受https的“默认”端口,因此删除:8150也起作用。无论如何,到非HTTPS端口的硬编码端口都是问题。 – mobibob 2010-09-19 04:59:01