我似乎无法从请求中完全删除标头。 我尝试将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
使用带有NSURLRequest的NSURLSessionTask不是这样做的方法,所以如果是这种情况,请提供建议。
答案 0 :(得分:0)
我不认为您想要全面执行此操作,因为在许多情况下它违反了HTTP规范。例如,Host头必须包含在HTTP / 1.1 [14.23]中。与Connection相同。内容长度,用户代理应该包括在内。
但是,我认为通过将其设置为nil
来清除其中一些字段的旧方法在iOS10 +中不再有效。