2010-11-09 89 views
0

我需要將一個二進制數據塊傳遞給Web服務。我傳遞的對象是API的一部分,因此Serialize/Deserialize/Byte函數內置於API類中。據我所知,它不是顯式的XML序列化。VB.net將二進制對象發送到Web服務時出錯

不幸的是,無論何時將數據傳遞到我的Web服務,即使作爲編碼字符串,該服務都會返回「(400)錯誤請求」錯誤。如果我刪除的編碼數據,並用簡單的字符串替換變量,適當的響應返回,排除了認證,服務錯誤等

'Convert the byte array into an encoded string' 
Dim unicodeEncoder As New UnicodeEncoding() 
Dim serializedData As String = unicodeEncoder.GetString(myObject.Bytes).Trim() 
Dim webAuth As New myWebService.ServiceSoapClient 
MessageBox.Show(webAuth.VerifyFeatureSet(serializedData , "", "", "", "")) 

對我怎麼能做到這一點有什麼建議?如果我需要以不同的方式對數據進行編碼,請在遠端對其進行解碼。

+0

您是否嘗試過使用64Base轉換? – 2010-11-09 09:42:46

+0

我可以在Base64中發送數據,但是當我將其取出時,我收到以下消息:從字符串「」轉換爲鍵入「Double」無效。使用此代碼:Dim bt As Byte()= System.Convert.FromBase64String(Trim(base64DataString)) – Brad 2010-11-09 15:18:29

+0

下班回家,現在運行。也許我在做了其他更改後忘記了構建。謝謝您的幫助。 Base64編碼完美。 – Brad 2010-11-10 02:47:51

回答

0

轉換爲Base64完美工作。 (感謝,藍)

發送到Web服務:

webAuth.VerifyFeatureSet(System.Convert.ToBase64String(myObject.Bytes) 

Web服務接收和解碼:

Dim byteObject As Byte() = Convert.FromBase64String(serializedData) 
相關問題