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不允许转移到Base 64?有谁知道这件事的细节?

4

1 回答 1

0

感谢您的宝贵意见,但我已经解决了这个问题。我删除了以下代码并将二进制文件传输到“type:xs:hexbinary”

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

它就像魔术一样工作。它会自动将二进制文件转换为十六进制,并在服务器上接收时再次自行转换为二进制文件......

谢谢。

于 2012-07-20T06:12:41.363 回答