此代码:
local client = require("socket.http")
local resp = client.request("some_server.com/some_image123.png")
如何获得响应的主体(作为二进制数据/图像)?这里不是“ resp”。
答案 0 :(得分:0)
您知道吗,您读过manual了吗?
如果成功,则简单表单以字符串形式返回响应正文,后跟响应状态代码
我会带给您疑问的好处,并假设您确实不知道在哪里可以找到该信息,但是即使在Google上快速搜索“ luasocket参考”,也会使该页面显示出来。
编辑:或者也许您已经知道了,但是却没有意识到Lua中的字符串也是二进制数据的表示形式。与任何其他语言一样,Lua字符串只是底层的字节数组,但是例如C之外,它们可以包含 any 字节,包括$ knife solo prepare -VV <nodename>
DEBUG: /bin/sh -c " if command -v curl >/dev/null 2>&1; then curl -L -o 'install.sh' 'https://www.opscode.com/chef/install.sh'; else wget -O 'install.sh' 'https://www.opscode.com/chef/install.sh'; fi; "
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0DEBUG: /bin/sh -c " if command -v curl >/dev/null 2>&1; then curl -L -o 'install.sh' 'https://www.opscode.com/chef/install.sh'; else wget -O 'install.sh' 'https://www.opscode.com/chef/install.sh'; fi; "
stdout: Warning: Failed to create the file install.sh: Permission denied
Warning: Failed to create the file install.sh: Permission denied
DEBUG: /bin/sh -c " if command -v curl >/dev/null 2>&1; then curl -L -o 'install.sh' 'https://www.opscode.com/chef/install.sh'; else wget -O 'install.sh' 'https://www.opscode.com/chef/install.sh'; fi; "
51 23110 51 11925 0 0 18535 0 0:00:01 --:--:-- 0:00:01 18517
51 23110 51 11925 0 0 18535 0 0:00:01 --:--:-- 0:00:01 18517
DEBUG: /bin/sh -c " if command -v curl >/dev/null 2>&1; then curl -L -o 'install.sh' 'https://www.opscode.com/chef/install.sh'; else wget -O 'install.sh' 'https://www.opscode.com/chef/install.sh'; fi; "
stdout: curl: (23) Failed writing body (0 != 11925)
curl: (23) Failed writing body (0 != 11925)
DEBUG: Initial command sudo bash install.sh -v 13.12.14
DEBUG: Running processed command sudo -p 'knife sudo password: ' bash install.sh -v 13.12.14
DEBUG: sudo -p 'knife sudo password: ' bash install.sh -v 13.12.14 stdout: bash: install.sh: No such file or directory
bash: install.sh: No such file or directory
,因此您可以使用它们可以存储您想要的任何类型的二进制数据。