0

WSDL を使用して SOAP API を作成しました。ファイルのバイトをクライアントから API のサーバーに転送する必要があります。unsignedBinary[]渡されるデータを記述するために WSDL で配列型を使用しています。WSDL の説明は次のとおりです。

<complexType name="TByteArray">

<complexContent>

<restriction base="soapenc:Array">

<sequence/>

<attribute ref="soapenc:arrayType" n1:arrayType="xs:unsignedByte[]" xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>

</restriction>

</complexContent>

</complexType>

データを生のバイトで送信しようとしていますが、エラーが発生しています。現在、soap API 呼び出しを使用してバイナリ データを送信しながら、base64 エンコードを行っています。PHP クライアントを使用してデータを送信すると正常に動作しますが、Delphi アプリケーションを使用してデータを送信すると動作しません。

バイナリ データを base64 に変換すると、Delphi アプリケーションがデータを送信できなくなると思いますか? unsignedByesベース64への転送は許可されていませんか? これの詳細わかる人いますか?

4

1 に答える 1

0

貴重なコメントをありがとうございますが、私はこの問題を解決しました。次のコードを削除し、「type:xs:hexbinary」でバイナリを転送しました

<part name="abData" type="xs:hexBinary"/>

そしてそれは魔法のように機能します。バイナリを自動的に16進数に変換し、サーバーで受信すると、独自にバイナリに再度変換します...

ありがとう。

于 2012-07-20T06:12:41.363 に答える