【问题标题】:How to access body in luasocket as binary data?如何将 luasocket 中的正文作为二进制数据访问?
【发布时间】:2019-11-24 02:09:15
【问题描述】:

这段代码:

local client = require("socket.http")
local resp = client.request("some_server.com/some_image123.png")

如何获取响应的正文(二进制数据/图像)?这里的“resp”不是那个。

【问题讨论】:

  • some_server.com 需要整个 http:// 前缀才能正常工作。检查request 返回的第二个值是否有错误消息,例如local resp, err = client.request...。如果您获得301302 状态,您可能需要使用luasec 而不是纯socket

标签: lua luajit


【解决方案1】:

你知道,如果你读过manual,你就会知道:

如果成功,则简单形式将响应正文作为字符串返回,后跟响应状态码

我会告诉你这个疑问的好处,并假设你真的不知道在哪里可以找到该信息,但即使是在谷歌上快速搜索“luasocket 参考”也会打开该页面。


编辑:或者你可能已经知道了,但没有意识到 Lua 中的字符串也是二进制数据的表示。与任何其他语言一样,Lua 字符串只是底层的字节数组,但除了 C 之外,它们可以包含 any 字节,包括 0x00,因此您可以使用它们来存储任何你想要的二进制数据。

【讨论】:

    猜你喜欢
    • 2013-06-18
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2014-05-11
    • 1970-01-01
    相关资源
    最近更新 更多