2012-05-24 55 views
1

嗨我想連接到一些將使用用戶名和密碼作爲憑據的服務器。以下是我正在使用的代碼。 的NSString 交= [[NSString的頁頭] initWithFormat:@ 「的userName = * &密碼= *」]; NSURL url = [NSURL URLWithString:@「 ** * ***」];如何進行身份驗證的服務電話

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:url]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:postData]; 
NSLog(@"request:%@",request); 
    urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

這裏的問題是服務器給用戶無效message.But我賜的憑據是fine.This用戶名和密碼不要求object..can你的任何一個請幫我去..

回答

0

您需要以保存用戶名&密碼的字符串開頭。這將形成http POST主體。您需要使用正確的Web服務器輸入字段名稱替換username_input_field & password_input_field。我的建議是使用Firefox和httpFox擴展名登錄到您的網絡服務器。 httpFox會顯示請求的所有輸入字段名稱。還可能有額外的隱藏字段,您需要添加。

NSString *post = [NSString stringWithFormat: 
    @"username_input_field=%@&password_input_field=%@",username,password]; 
+0

感謝名單lidders。但是這個URL有點不同,它不能從瀏覽器端連接..只有代碼可能。 – Bharath

+0

任何人請告訴我如何使連接類型作爲保持活動的Web服務調用。提前致謝。 – Bharath

+0

我得到了這個問題的答案..我們必須做的是在請求對象中添加連接類型[request addValue:@「Keep-alive」forKey:@「Connection」] ...沒有什麼會發生的是NSmutablerequest委託將繼續調用,直到您停止應用程序。 – Bharath

0

的用戶名添加到請求頭對象,像這樣:

[request addValue:@"<username>" forKey:@"<username parameter>"]