【问题标题】:VB.net Error sending a binary object to a web serviceVB.net 将二进制对象发送到 Web 服务时出错
【发布时间】:2010-11-09 05:26:25
【问题描述】:

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

不幸的是,每当我将数据传递给我的网络服务时,即使是作为编码字符串,服务也会返回“(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 , "", "", "", ""))

对我如何做到这一点有什么建议吗?如果我需要以不同的方式对数据进行编码,请在远端包含一个用于解码的 sn-p。

【问题讨论】:

  • 你试过用64Base转换吗?
  • 我能够以 Base64 格式发送数据,但是当我将其取回时,我收到以下消息:从字符串“”到类型“双”的转换无效。使用此代码: Dim bt As Byte() = System.Convert.FromBase64String(Trim(base64DataString))
  • 下班回家,现在它运行起来了。也许我在进行其他一些更改后忘记了构建。谢谢您的帮助。 Base64 编码完美运行。

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


【解决方案1】:

转换为 Base64 效果很好。 (谢谢,蓝)

发送到网络服务:

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

Web 服务接收和解码:

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

【讨论】:

    猜你喜欢
    • 2012-09-10
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2014-11-25
    相关资源
    最近更新 更多