【问题标题】:Invalid binary character when transmitting ProtoBuf-net messages over AWS SQS通过 AWS SQS 传输 ProtoBuf-net 消息时二进制字符无效
【发布时间】:2013-05-02 03:06:41
【问题描述】:

我正在使用 Protobuf-net (https://code.google.com/p/protobuf-net/) 序列化我的课程,然后尝试通过亚马逊 SQS 传输。

当我这样做时,我得到了这个错误:

Amazon.SQS.AmazonSQSException: Invalid binary character '#xC' was found in the message body, the set of allowed characters is #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF].

这是不言自明的。

有没有人有一个很好的解决方案来解决这个问题?

【问题讨论】:

    标签: protocol-buffers protobuf-net amazon-sqs


    【解决方案1】:

    邮件正文中只允许使用这些字符:请参阅SendMessage API docs

    要发送任何二进制内容,您必须对其进行编码,例如使用Base64。然后消息更大,但只包含 ASCII 字符,这比亚马逊要求的还要严格。

    我们正在使用这种方法,例如在softwaremill-common 库中发送一个序列化的Java 对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      相关资源
      最近更新 更多