我正在整理一个包含某些内容的字符串,该字符串被设置为NSMutableURLRequest的HTTP标头字段:
NSString *authenticationHeaderString = [NSString stringWithFormat:@"OAuth oauth_callback=\"%@\", oauth_nonce=\"%@\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"%@\", oauth_consumer_key=\"xxxxxxxxx\", oauth_signature=\"%@\", oauth_version=\"1.0\"", [callbackURLString URLEncodedString], nonce, timestampString, [BYOAuthSignatureString signatureStringWithParameters:signingParams URL:[mURLRequest.URL absoluteString] HTTPMethod:mURLRequest.HTTPMethod]];
NSLog(@"authenticationHeaderString: %@", authenticationHeaderString);
[mURLRequest setValue:[NSString stringWithFormat:@"%@", authenticationHeaderString] forHTTPHeaderField:@"Authorization"];
NSLog(@"header:%@", mURLRequest.allHTTPHeaderFields);
在标头字段中,\"
未转换为"
authenticationHeaderString: OAuth oauth_callback="http%3A%2F%2Fbytolution.com", oauth_nonce="o7QNfKOMBKtdZQmJrbV9QWqVwUkkRK1ABbjfK4hWTQ", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1361735323", oauth_consumer_key="xxxxxxxxxxx", oauth_signature="koNYscKJx3WwC7M4kHsrMpfzYoo=", oauth_version="1.0"
header:{
Authorization = "OAuth oauth_callback=\"http%3A%2F%2Fbytolution.com\", oauth_nonce=\"o7QNfKOMBKtdZQmJrbV9QWqVwUkkRK1ABbjfK4hWTQ\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1361735323\", oauth_consumer_key=\"xxxxxxxxxxxx\", oauth_signature=\"koNYscKJx3WwC7M4kHsrMpfzYoo=\", oauth_version=\"1.0\"";
}
为什么?
答案 0 :(得分:3)
这就是NSDictionary mURLRequest.allHTTPHeaderFields
打印自己的方式。每当NSDictionaries打印其内容时,它们会双引号包含空格的任何字符串。除了其他方面,它们还会转义字符串中的任何双引号。
字符串尚未更改。您可以通过执行
来验证这一点NSLog(@"authHeader: %@", [mURLRequest.allHTTPHeaderFields objectForKey: @"Authorization"]);
答案 1 :(得分:0)
它被转换......然后它被转换回显示。
您的标题应该没问题,只是它显示为用于记录的字符串。