發送不正確的數據我有正確設定請求的HTTPBody的問題。我使用OAuth與我們的API服務器進行通信,唯一的區別是,我需要的,不是頭(使用OauthConsumer.framework - http://code.google.com/p/oauthconsumer/wiki/UsingOAuthConsumer)通過身體發送數據。setHTTPBody在NSMUtableURLRequest
這是我的代碼:
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"" }
這是服務器從Windows客戶端接收到的內容:
– Thunder