在MeToo的研发过程中,部分模块需要使用http请求向服务器同时传输图片和一些附属信息。由于图片使用NSDATA格式传输,附属信息使用JSON格式传输,而消息的body只能支持其中一种格式,因此在只要传输JSON信息的时候,使用UTF8编码传输;在需要同时传输图片和附属信息时,将图片以二进制格式放在body里,附属信息的JSON放在header里,如下所示:
[[SVHTTPClient sharedClientWithIdentifier:@"upload"] setValue:_delegate.userID forHTTPHeaderField:@"userid"];
。。。。。。
[[SVHTTPClient sharedClientWithIdentifier:@"upload"]POST:POSTVOTE_SERVLET parameters:[NSDictionary dictionaryWithObjectsAndKeys:
imageData, @"image",
nil]
completion:^(id response, NSHTTPURLResponse *urlResponse, NSError *error) { …… }];
但这里有个问题,在httpheader中设置的编码格式只对body起作用,header本身只支持ascii的文本,如果将中文放在header中(即使用JSON包装也一样),传到服务器端后服务器解析不出来,从而报JSON格式错误。
解决方法是,对汉字进行UTF