Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 获取铲斗操作响应+;AWS S3和x2B;内容长度标题_Amazon S3_Aws Sdk - Fatal编程技术网

Amazon s3 获取铲斗操作响应+;AWS S3和x2B;内容长度标题

Amazon s3 获取铲斗操作响应+;AWS S3和x2B;内容长度标题,amazon-s3,aws-sdk,Amazon S3,Aws Sdk,只是想知道GET Bucket op响应是否跳过了Content-Length头。我对此进行了测试,发现GET Bucket op的响应中没有Content-Length头 如果响应不包含内容长度头,读取响应的应用程序如何理解响应主体的结束位置 请求-响应代码段: GET /?max-keys=1000&prefix&delimiter=%2F HTTP/1.1 Date: Sat, 09 Apr 2016 18:27:23 GMT x-amz-reque

只是想知道GET Bucket op响应是否跳过了Content-Length头。我对此进行了测试,发现GET Bucket op的响应中没有Content-Length头

如果响应不包含内容长度头,读取响应的应用程序如何理解响应主体的结束位置

请求-响应代码段:

    GET /?max-keys=1000&prefix&delimiter=%2F HTTP/1.1
    Date: Sat, 09 Apr 2016 18:27:23 GMT
    x-amz-request-payer: requester
    Authorization: AWS AKIAIP3KAUILC4GG7A2A:UG3bGvIjayrxrkxEX1mfrvETy/M=
    Connection: Keep-Alive
    User-Agent: Cyberduck/4.9.19632 (Mac OS X/10.10.5) (x86_64)

    HTTP/1.1 200 OK
    x-amz-id-2: yg76HSq5j0mi0oR6dXF8ZfGq722kHBWiMQmNvXPqiLxr1S4nGj5GVn1RVrPQrOUfNynxxaMSYEY=
    x-amz-request-id: B4468E68E10B6AEF
    Date: Sat, 09 Apr 2016 18:27:25 GMT
    x-amz-bucket-region: us-east-1
    Content-Type: application/xml
    Server: AmazonS3
    Connection: close

    <?xml version="1.0" encoding="UTF-8"?>
    <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">......</ListBucketResult>
GET/?max keys=1000&前缀和分隔符=%2F HTTP/1.1
日期:2016年4月9日星期六18:27:23 GMT
x-amz-request-payer:请求者
授权:AWS AKIAIP3KAUILC4GG7A2A:UG3BGVVIJAYRKXEXX1MFRVETY/M=
连接:保持活力
用户代理:Cyberduck/4.9.19632(Mac OS X/10.10.5)(x86_64)
HTTP/1.1200ok
x-amz-id-2:YG76HSQ5J0Mi0OR 6DXF8ZFGQ722KHBWIMQMNVXpQILXR1S4NGJ5GVN1RPRQRUFNYXXAMSYEY=
x-amz-request-id:B4468E68E10B6AEF
日期:2016年4月9日星期六18:27:25 GMT
x-amz-bucket-region:us-east-1
内容类型:application/xml
服务器:亚马逊3
连接:关闭
......

谢谢

响应时,内容长度标题是可选的。而且它可能不会反映真实的内容长度,即使它显示了。想想gzip的响应。因此,要回答这个问题:当没有接收到内容长度时,客户端会一直读取,直到服务器关闭连接

在Java中,继续调用
InputStream.read()
,直到它返回-1


谢谢杨帆的回复。但是,如果客户端一直在读取,直到连接关闭,它将如何区分正在处理的当前请求的主体和下一个请求的头?另外,我相信AWS强制使用HTTP/1.1,我指的是在上面相同的连接上管道化GET命令。我只是想澄清这一点。