设置内容类型覆盖httpbody?

我在ios应用程序中调用API时遇到了一个奇怪的问题。 我创建了一个post请求

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:5.0]; [request setHTTPMethod:@"POST"]; 

然后我创建json发送到请求并将其添加到请求的主体,如下所示:

 [request setHTTPBody:encodedData]; 

最后,我添加了一些我随后设置的cookie:

 NSArray* cookieArray = [NSArray arrayWithObjects: sessionCookie, uidCookie, vidCookie, nil]; NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookieArray]; [request setAllHTTPHeaderFields:headers]; 

一切正常。 但是,由于我发送json,我试图做得很好,并使用这行代码设置内容类型:

 [request setValue:@"application/json; charset=utf-8" forHTTPHeaderField: @"Content-Type"]; 

一旦我添加了这行代码,我发送给请求主体的数据就不再作为请求的一部分传递。 这听起来像是其他人经历过的行为吗?

我也在用

 [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 

检查这个解释“Content-type:application / json; charset = utf-8”究竟是什么意思?