Mos*_*bin 15 multipart http-content-length content-length http-headers
我读过对"如何计算多部分HTTP请求内容长度?"这一问题的冲突和有些含糊不清的回复.我特别想知道:
有人能提供一个明确的例子来回答这些问题吗?
Mos*_*bin 10
下面的实例应该有希望回答这些问题.
Google的OAuth 2.0 Playground网页是针对Google云端硬盘云执行多部分HTTP请求的绝佳方式.您无需了解有关Google云端硬盘的任何信息 - 我会为您完成所有工作.我们只对HTTP请求和响应感兴趣.但是,如果需要,使用游乐场将允许您尝试使用多部分并回答其他问题.
我创建了一个名为"test-multipart.txt"的本地文本文件,保存在我的文件系统上.该文件大小为34个字节,如下所示:
We're testing multipart uploading!
Run Code Online (Sandbox Code Playgroud)
我们首先使用网址https://developers.google.com/oauthplayground/在浏览器中打开Google的OAuth 2.0 Playground :
选择Drive API v2和" https://www.googleapis.com/auth/drive ",然后按"授权API":
点击"令牌的Exchange授权码":
这里我们提供所有相关的多部分请求信息:
{"title": "test-multipart.txt", "parents": [{"id":"0B09i2ZH5SsTHTjNtSS9QYUZqdTA"}], "properties": [{"kind": "drive#property", "key": "cloudwrapper", "value": "true"}]}
Google的OAuth 2.0 Playground奇迹般地插入所有必需的标题,计算内容长度,生成边界序列,在需要的地方插入边界字符串,并向我们显示服务器的响应:
多部分HTTP请求以200状态代码成功,因此请求和响应是我们可以依赖的好的.谷歌的Playground插入了执行多部分HTTP上传所需的一切.您可以看到"内容长度"设置为352.让我们看一下标题后面的空行之后的每一行:
--===============0688100289==\r\n Content-type: application/json\r\n \r\n {"title": "test-multipart.txt", "parents": [{"id":"0B09i2ZH5SsTHTjNtSS9QYUZqdTA"}], "properties": [{"kind": "drive#property", "key": "cloudwrapper", "value": "true"}]}\r\n --===============0688100289==\r\n Content-type: text/plain\r\n \r\n We're testing multipart uploading!\r\n --===============0688100289==--
有九(9)行,我已经在前八(8)行的每一行的末尾手动添加了"\ r \n"(出于可读性原因).以下是每行中八位字节(字符)的数量:
八位字节的总和是344,并且将每个'\ r \n'视为单个一个八位字节序列给出了令人垂涎的内容长度344 + 8 = 352.
总结一下这些发现:
您的计算Content-Length
方式不依赖于有效载荷的状态代码或媒体类型; 它是线上的字节数.因此,编写多部分响应,计算字节数(并CRLF
计为两个),并将其用于Content-Length
.
请参阅:http://httpwg.org/specs/rfc7230.html#message.body.length
归档时间: |
|
查看次数: |
13830 次 |
最近记录: |