2012-02-25 8 views
2

JsonとAndroidでSSLを使用すると、送信されたリクエストをPHPを実行しているWebサーバーで正しく解析できません。 JsonはSSLなしで正常に動作します。
特に、$ _POST要素を取得しようとすると、それを見つけることができません。Json with android

// SSLのSSL一部

HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER; 

     DefaultHttpClient client = new DefaultHttpClient();//universal 

     SchemeRegistry registry = new SchemeRegistry(); 
     SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory(); 
     socketFactory.setHostnameVerifier((X509HostnameVerifier) hostnameVerifier); 
     registry.register(new Scheme("https", (SocketFactory) socketFactory, 443)); 
     SingleClientConnManager mgr = new SingleClientConnManager(client.getParams(), registry); 
     DefaultHttpClient httpClient = new DefaultHttpClient(mgr, client.getParams()); 

     HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier); 

//最後の起点部

 HttpPost httpPost = new HttpPost(url); 
     httpPost.setEntity(new UrlEncodedFormEntity(params)); 

     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     is = httpEntity.getContent(); 
+0

リクエストを正しく解析できないということは、正確にはどういう意味ですか?あなたが意図した結果と実際の結果のいくつかの例を掲載できるかどうか。 –

+0

場合(ISSET($ _ POST [ 'タグ'])&& $ _POST [ 'タグ']!= ''){} SSLがなければ、タグを読み取ることができますが、上のSSLで、これはfalseです。どういうわけか、送信されたデータは、SSL暗号化/復号化 – Steve

+0

[SSLがオンになった後、消えて$ _POSTの値](の可能性重複http://stackoverflow.com/questions/9456533/post-values-gone-after-ssl-turned-中に変更されますon) – Bruno

答えて

1

アンドロイドサイドのコードが役立つだろう。あなたが投稿するまで、私はあなたがSSL証明書に問題があると思います。これについて調べることができます。

http://blog.antoine.li/2010/10/22/android-trusting-ssl-certificates/

編集:SRYちょうどあなたは、いくつかのコードをあなたのポストを編集しました。

+0

たぶん私は何かを見つけた... PHPのどのバージョンを使用しています。 PHPバグの可能性があります http://forums.devshed.com/php-development-5/ssl-no-post-values-89580.html – Moritz

+0

PHPのバージョンは5.2.17です。私は証明書の問題だと思う。 – Steve

+0

それでは、キーストアと一緒に上記の方法で試してみてください。 – Moritz