У меня проблема с правильной настройкой HTTPBody запроса. Я использую Oauth для связи с нашим сервером API, единственная разница в том, что мне нужно отправлять данные через тело, а не через заголовок (используя OauthConsumer.framework - http://code.google.com/p/oauthconsumer/wiki/UsingOAuthConsumer).
Это мой код:
NSString *oauthHeader = [NSString stringWithFormat:@"OAuth realm=\"%@\", oauth_consumer_key=\"%@\", %@oauth_signature_method=\"%@\", oauth_signature=\"%@\", oauth_timestamp=\"%@\", oauth_nonce=\"%@\", oauth_version=\"1.0\"%@",
[realm URLEncodedString],
[consumer.key URLEncodedString],
oauthToken,
[[signatureProvider name] URLEncodedString],
[signature URLEncodedString],
timestamp,
nonce,
extraParameters];
//[self setValue:oauthHeader forHTTPHeaderField:@"Authorization"];
NSLog(@"%@", oauthHeader);
[self setHTTPBody:[oauthHeader dataUsingEncoding:NSASCIIStringEncoding]];
Это вывод NSlog.
OAuth область = "", oauth_consumer_key = "ключ", oauth_signature_method = "HMAC-SHA1", oauth_signature = "HT2UwJoW4dSNh1gXkAzQThLp0Sk% 3D", oauth_timestamp = "1340789377", oauth_nonce = "3BDF0A1A-4FB0-40EF-95EA-5CB8B0FD07C1", oauth_version = «1.0»
А это то, что читает сервер, почему неправильный массив? Это не ошибка на стороне сервера, наш клиент C # делает это без проблем.
array(1) { ["OAuth_realm"]=> string(215) """, oauth_consumer_key="key", oauth_signature_method="HMAC-SHA1", oauth_signature="HT2UwJoW4dSNh1gXkAzQThLp0Sk=", oauth_timestamp="1340789377", oauth_nonce="3BDF0A1A-4FB0-40EF-95EA-5CB8B0FD07C1", oauth_version="1.0"" }