Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从http头中提取base64编码数据作为NSData或NSString?_Ios_Objective C - Fatal编程技术网

Ios 从http头中提取base64编码数据作为NSData或NSString?

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

我需要从http头中提取一些数据。在服务器发送数据之前,数据已经过base64编码,然后是URL编码。标题看起来像:

<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;
}