VB.net错误将二进制对象发送到Web服务

时间:2010-11-09 05:26:25

标签: vb.net web-services soap xml-serialization

我需要将一块二进制数据传递给Web服务。我传递的对象是API的一部分,因此Serialize / Deserialize / Byte函数内置于API类中。据我所知,它不是显式的XML Serializable。

不幸的是,每当我将数据传递给我的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 , "", "", "", ""))

关于如何实现这一目标的任何建议?如果我需要以不同的方式对数据进行编码,请在远端包含一个解码片段。

1 个答案:

答案 0 :(得分:0)

转换为Base64非常有效。 (谢谢,蓝色)

发送至网络服务:

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

Web服务接收和解码:

Dim byteObject As Byte() = Convert.FromBase64String(serializedData)