简单:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:linkURLString]];
[request setHTTPMethod:@"POST"];
[request setTimeoutInterval:10];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[NSJSONSerialization dataWithJSONObject:jsonDictionary options:NSJSONWritingPrettyPrinted error:nil]];
如果我记录标题@"Content-Type"
的值,我就没有了。那就是我在后端得到的东西。每隔一个值设置,甚至尝试其他标题字段,工作正常!我尝试在标题之前设置身体但仍然没有。
答案 0 :(得分:3)
所以,我尝试复制并粘贴您的代码,我也获得了(null)
。
这真的很奇怪,所以我深入了解。
通过打印所有HTTPHeaderFields
([request allHTTPHeaderFields]
)的列表,我获得了这个:
Content-Type: {
"Content\U00ad-Type" = "application/json";
}
如您所见,有一个奇怪的unicode角色:\U00ad
。
这就是原因,因为当您尝试获取与Content-Type
相关联的值时,它会找到null
。
所以我试着用你的代码重写代码中的字符串@"Content-Type"
,结果是:
Content-Type: {
"Content-Type" = "application/json";
}
现在确实记录了:
NSLog(@"Content-Type: %@", [request valueForHTTPHeaderField:@"Content-Type"]);
我获得了:
Content-Type: application/json