gpt4 book ai didi

http - 在 AWS API Gateway 响应正文中修改的数据

转载 作者:可可西里 更新时间:2023-11-01 17:06:33 27 4
gpt4 key购买 nike

我正在尝试返回十六进制字符串作为我的 AWS Lambda 函数的响应。当它到达客户端时,数据似乎被修改了。

  • 数据:
    47 49 46 38 39 61 01 00 01 00 80 00 00 00 00 00
    ff ff ff 21 f9 04 01 00 00 01 00 2c 00 00 00 00
    01 00 01 00 00 08 04 00 03 04 04 00 3b

  • 十六进制扩展数据(发送数据):

    \x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00\x00" “\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x01\x00\x2c\x00\x00\x00\x00” "\x01\x00\x01\x00\x00\x08\x04\x00\x03\x04\x04\x00\x3b

  • 接收到的数据
    47 49 46 38 39 61 01 00 01 00 c2 80 00 00 00 00
    00 c3 bf c3 bf c3 bf 21 c3 b9 04 01 00 00 01 00
    2c 00 00 00 00 01 00 01 00 00 08 04 00 03 04 04
    00 3b

    如何解决这个问题?

最佳答案

上次我检查它在文档中不是很明确,但 API 网关确实是为 json(或类似的)制作的,对二进制的支持在“路线图上”,但显然似乎不是优先事项。它将发送的所有内容转换为 utf-8。

将您的原始数据与接收到的数据进行精确比较,您可以看到:

47 49 46 38 39 61 01 00 01 00 80    00 00 00 00 00 ff    ff    ff    21 f9    04 01 00 00 01 00 2c 00 00 00 00 01 00 01 00 00 08 04 00 03 04 04 00 3b
47 49 46 38 39 61 01 00 01 00 c2 80 00 00 00 00 00 c3 bf c3 bf c3 bf 21 c3 b9 04 01 00 00 01 00 2c 00 00 00 00 01 00 01 00 00 08 04 00 03 04 04 00 3b

0x7f 以下的一切都可以,因为 unicode 代码点与编码字节相同 (U+0047 -> 47),但对于 0x80 或更多,问题出现了:U+0080 -> c2 80,U+00FF -> c3 bf 等等。

我们最近遇到了类似的问题:二进制数据在通过网关发送时被损坏并且比直接访问我们的后端时更大。这是因为很多字节被 Unicode 特殊的“替换字符”替换,又名“U+FFFD”又名“0xEF 0xBF 0xBD”。

如何修复?我们刚刚停止使用 Gateway,但如果您能负担得起更大的数据,则可以对其进行 base64 编码。

关于http - 在 AWS API Gateway 响应正文中修改的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38897368/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com