Content-Length 最大允许长度

Vin*_*ent 2 http content-length ios

我在 ObjectiveC 中编程。我猜所有 oC 程序员都在使用相当标准的代码来发布:

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
Run Code Online (Sandbox Code Playgroud)

目前我收到警告说 NSUInteger 不应用作格式参数。该警告建议进行类型转换(unsigned long)。并用 %lu 替换 %d。这听起来很合乎逻辑。

在 HTTP 定义中,我找不到 Content-Length 实际上有多长。只是相当模糊的八位字节。是8位吗?我找不到答案!

use*_*109 6

Content-Length 的最大值没有具体限制。

https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13

14.13 Content-Length
Any Content-Length greater than or equal to zero is a valid value.
Run Code Online (Sandbox Code Playgroud)

此外,苹果文档setValue:forHTTPHeaderField:NSMutableURLRequest类参考状态

此外,如果您上传的正文数据的长度可以自动确定(例如,如果您提供带有 NSData 对象的正文内容),则为您设置 Content-Length 的值。