我似乎无法从请求中完全删除标头。我尝试对 NSURLRequest 进行子类化并将标头值设置为 nil,但它们仍然显示出来。我能做的最接近的事情是:
-(instancetype)init{
self = [super initWithURL:[NSURL URLWithString:@"http://www.example.com/"]];
if(self){
self.HTTPMethod = @"POST";
self.HTTPBody = [@"65000,100" dataUsingEncoding:NSUTF8StringEncoding];
[self setValue:@"" forHTTPHeaderField:@"Host"];
[self setValue:@"" forHTTPHeaderField:@"User-Agent"];
[self setValue:@"" forHTTPHeaderField:@"Content-Type"];
[self setValue:@"" forHTTPHeaderField:@"Connection"];
[self setValue:@"" forHTTPHeaderField:@"Accept"];
[self setValue:@"" forHTTPHeaderField:@"Accept-Language"];
[self setValue:@"" forHTTPHeaderField:@"Accept-Encoding"];
[self setValue:@"" forHTTPHeaderField:@"Content-Length"];
}
return self;
}
这将创建以下标头:
POST / HTTP/1.1
Host:
Content-Type:
Content-Length: 9
Accept:
User-Agent:
Accept-Language:
Accept-Encoding:
Connection: keep-alive
65000,100
理想情况下,我只是尝试发送请求
65000,100
也许将 NSURLSessionTask 与 NSURLRequest 一起使用不是执行此操作的方法,所以如果是这种情况,请告知。
我认为你不想全面这样做,因为它在许多情况下违反了HTTP规范。例如,主机标头必须包含在 HTTP/1.1 [14.23] 中。与连接相同。应包括内容长度、用户代理。
但是,我相信通过将其中一些字段设置为nil
来清除其中一些字段的旧方法在iOS10 +中不再有效。