我可以使用下面的 get 命令下载一个 test.pdf 文件,其中包含我在 C 中用于微控制器与服务器通信的代码:
GET /TestFolder/test.pdf HTTP/1.1\r\n 主机:www.xyz.com\r\n\r\n 文件:test.pdf 位于文件夹:TestFolder 在主机:xyz.com
我想在 Amazon S3 上测试该程序;所以我创建了一个帐户并上传了数据并将文件和文件夹公开,将策略添加到 S3 存储桶以便可以访问对象。当我将上面的 GET 命令发送到 S3 主机时:s3-us-west-2.amazonaws.com 在连接套接字并获得服务器的 IP 后出现错误,来自 S3 的错误消息显示:
响应错误:HTTP/1.1 400 错误请求
传输编码:分块
日期:星期一,.. 2015 04:15:02 GMT
连接:关闭
服务器:AmazonS3
我想从 get 命令中删除额外的 \r\n,并将此命令发送到 s3 GET /TestFolder/test.pdf HTTP/1.1\r\n 主机:s3-us-west-2.amazonaws.com\r\ n
这一次,请求挂起而没有响应。我没有收到任何错误消息,套接字像往常一样连接,我看到了服务器的 IP。
我将不胜感激任何可能出现问题的建议或意见。显然,当文件在其他站点公开时,GET 命令适用于文件下载,有没有人遇到过这种 http/1.1 GET 命令的问题?我可以通过在浏览器中键入链接从 AWS S3 访问该文件。