Ios 从http头中提取base64编码数据作为NSData或NSString?
我需要从http头中提取一些数据。在服务器发送数据之前,数据已经过base64编码,然后是URL编码。标题看起来像:Ios 从http头中提取base64编码数据作为NSData或NSString?,ios,objective-c,Ios,Objective C,我需要从http头中提取一些数据。在服务器发送数据之前,数据已经过base64编码,然后是URL编码。标题看起来像: <snip> Server = Apache; "Transfer-Encoding" = Identity; "Www-Authenticate" = "Basic realm=\"itYNcEpMfSPfewXAOte3II6xXsM6aNBO197bBuvb9gvWVl7Xo%2FQJ9j9r0hHz0k12xLRqlyvczoCM7kI9q1opHj%2BKY
<snip>
Server = Apache;
"Transfer-Encoding" = Identity;
"Www-Authenticate" = "Basic realm=\"itYNcEpMfSPfewXAOte3II6xXsM6aNBO197bBuvb9gvWVl7Xo%2FQJ9j9r0hHz0k12xLRqlyvczoCM7kI9q1opHj%2BKYiPz73DqypNFgYGleR3n0bcVTto80Hq55i6nsgPaCnHrWJOdQs1HY%2FzzuK6vbZYAIofiB7VKSwdi00ZmkbQi9Pi05i4lCaCu%2FwV%2FXOOS95oL8TQ%3D\"";
选择其中一个选项是否重要,或者两个选项是否可以平等使用
注意:我不是问如何从URL编码解码和从Base64解码,我是问起点是NSString还是NSData,为什么,或者这不重要。Base64这是字符串,可以转换为NSData
NSString* option1 = [header objectForKey: @"Www-Authenticate"];
NSData *data = [NSData dataFromBase64String:option1];
NSString* option1 = [header objectForKey: @"Www-Authenticate"];
NSData *data = [NSData dataFromBase64String:option1];
- (NSString*)encodeTo64:(NSString*)fromString
{
NSData *plainData = [fromString dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64String;
if ([plainData respondsToSelector:@selector(base64EncodedStringWithOptions:)]) {
base64String = [plainData base64EncodedStringWithOptions:kNilOptions]; // iOS 7+
} else {
base64String = [plainData base64Encoding]; // pre iOS7
}
return base64String;
}