0
我已經使用WSDL創建了一個SOAP API,並且需要將文件的字節從客戶端傳輸到API的服務器。我在WSDL中使用unsignedBinary[]
數組類型來描述要傳遞的數據。 WSDL描述如下:使用帶有base64編碼的unsignedByte
<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>
我想發送原始字節數據,這是給出錯誤。 現在我正在做一個base64編碼,同時使用soap API調用發送二進制數據。 如果我使用PHP客戶端發送數據,它工作正常,但當我使用Delphi應用程序發送數據時,它不工作。
你認爲二進制數據轉換爲Base64是使Delphi應用程序不允許發送數據? unsignedByes
不允許傳輸到Base 64?有沒有人知道這個細節?
,如果你發佈你的工作PHP代碼和你的破Delphi代碼這樣的人能指出你的差異這會更有用。 – 2012-07-13 18:18:52
你需要使用unsignedByte嗎?就我個人而言,我通常只是將base64編碼數據作爲普通字符串值發送到SOAP消息中,在服務器端將其提取出來,並將其解碼回原來的二進制值。我不知道這在PHP中如何工作,但在Delphi/Java環境中它確實可以正常工作。 – Elling 2012-07-13 22:57:16