我需要将一块二进制数据传递给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 , "", "", "", ""))
关于如何实现这一目标的任何建议?如果我需要以不同的方式对数据进行编码,请在远端包含一个解码片段。
答案 0 :(得分:0)
转换为Base64非常有效。 (谢谢,蓝色)
发送至网络服务:
webAuth.VerifyFeatureSet(System.Convert.ToBase64String(myObject.Bytes)
Web服务接收和解码:
Dim byteObject As Byte() = Convert.FromBase64String(serializedData)