0

新しいSSL/自己署名証明書機能を利用するために、バージョン2.6からKsoap2-Androidバージョン3を使用するようにAndroidアプリを更新しようとしています。

このアプリは、単純なパラメーターの送信と複雑なオブジェクトの受信に問題がないようです。しかし、私のリクエストで複雑なオブジェクトを送信しようとすると、nullとしてサーバーに到着します。

ksoapの複合型のマーシャリング/アンマーシャリングが機能することはなかったので、基本的には、階層をステップダウンするために、たくさんのSoapObjectsとPropertyInfoオブジェクト、たくさんの.getProperty( "propertyname")などがありました。それは大丈夫で、コーディングするのは少し面倒ですが、うまく機能したので、すべて問題ありません。しかし、複雑なオブジェクトを送信しようとすると、サーバーでの要求でデータが受信されません。

SoapObjectを作成し、元のオブジェクトのプロパティとしてさらに多くのSoapObjectを割り当て、ツリーの最後にPropertyInfoオブジェクトを使用して、それらからさらに多くのSoapObjectを割り当てることにより、リクエストオブジェクトをまとめました。何らかの理由で、ksoap2バージョン3を使用すると、これは機能しなくなったようです。これをテストしました。唯一の違いは、使用しているksoapのバージョンです。3.0ではなく2.6で動作します。

これが発生する既知の理由はありますか?必要に応じてここにコードを投稿できますが、基本的なものが足りない場合に備えてお願いしたいと思いました。ニュースやコーディングのヒントとコツには、これが発生する理由を示唆するものは何もありませんでした。

4

1 に答える 1

0

私はこの問題を解決しましたが、原因は正確にはわかりません。

Ksoap2-androidの「コーディングのヒントとコツ」ページで詳しく説明されているように、複雑なオブジェクトをアップロードするための新しい方法を使用するようにコードをリファクタリングしまし

新しいバージョンのKsoap2-Androidでは、ツリーの最後にPropertyInfoオブジェクトを含むネストされたSoapObjectを使用できなくなったようです。これは、以前行っていた方法です。新しいバージョンでは、最上位に1つのSoapObjectしかなく、PropertyInfoオブジェクトがあり、これらの各PropertyInfoオブジェクトは複合型にすることができます。これを行う方法は、上記のリンクで詳しく説明されています。

于 2012-11-02T11:12:17.623 に答える