Android プロジェクトで ksoap2-Android を使用してファイルをアップロードしています。動いていない。
まず、私の wsdl は次のようになります。
<xsd:element name="Op1RequestType">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="date" type="xsd:dateTime"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="imgFile"
type="tns:Attachment"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
「tns:Attachment」は次のように定義されます。
<xsd:complexType name="Attachment">
<xsd:sequence>
<xsd:element name="file" type="xsd:base64Binary"/>
<xsd:element name="filename" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
を作成し、名前と値を現在の日付の文字列表現としてSoapSerializationEnvelope
プロパティに追加しています。date
ファイルを追加しなくても、これは正常に機能します ( に注意してくださいminOccurs="0"
)。ただし、ファイルを追加しようとすると、ひどく失敗します。
まず、タイプおよびのプロパティおよびをそれぞれ持つAttachment
を作成することにより、タイプの代表を作成します。 SoapObject
file
filename
byte[].class
String.class
次に、これらのオブジェクトを一般的なベクター (imgFile
アイテムの多様性を表すため) に追加し、そのベクターをプロパティとしてエンベロープに添付します。これにより、SOAP メッセージが正常に作成され、サーバーからの応答で例外が発生します (これは、適切な応答ではなく、エラー メッセージであるためです。何らかの理由で入力がうまくいかないためです...)。
WARN/System.err(438): SoapFault - faultcode: 'soapenv:Server'
faultstring:'org.apache.axis2.databinding.ADBException: Unexpected subelement imgFile'
faultactor: 'null' detail: org.kxml2.kdom.Node@4676b8a0
さて、私は何を間違っていますか?送信しているリクエスト SOAP エンベロープを確認する方法はありますか?