我正在使用NSURLConnection與服務器連接,使用GET請求。登錄我發送一個GET請求與形式的URLNSURLConnection,用錯誤憑據登錄成功
http://<myUserName>:<myPassword>@my.serverurl.com/user/login
一個例子URL將
http://someusername:[email protected]/user/login
當我登錄的第一次,我傳遞正確的用戶名和密碼,我我能夠成功登錄,如果我通過不正確的用戶名或密碼,我收到服務器的迴應,說我的用戶名和密碼不正確..一切都很好然後
但是,當我用正確的用戶名/密碼登錄,進入我的主頁。在那裏我註銷以返回到登錄屏幕。現在我輸入不正確的用戶名和密碼,並嘗試登錄,我得到的迴應登錄成功..這是我的問題。
這意味着我所有的後續登錄請求返回成功與不正確的用戶名和密碼。我使用瀏覽器檢查了相同的URL(正確和不正確),並且所有內容都按照原樣運行。
這是代碼我使用登錄
-(void)postRequest{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
[request setURL:[NSURL URLWithString:
@"http://myusername:[email protected]/user/login"]];
[request setHTTPMethod:@"GET"];
// [request setHTTPShouldHandleCookies:NO]; ==> I tried without this first
loginRequestConnection = [[CustomURLConnection alloc]
initCustomURLWithRequest:request
delegate:self
withTAG:LOGIN_REQUEST_CONNECTION];
[request release];
}
現在CustomURLConnection不過NSURLConnection的一個子類,並添加了標籤在委託
@interface CustomURLConnection : NSURLConnection{
}
@property()NSInteger tag;
@property(nonatomic, retain) NSMutableData *receivedData;
-(id)initCustomURLWithRequest:(NSURLRequest *)request delegate:(id)delegate withTAG:(NSInteger)tagInt;
@end
我多個連接請求之間,以確定認爲問題是NSURLConnection請求將cookie存儲在某個地方,並將它們重用於後續請求。這就是爲什麼我加了
[request setHTTPShouldHandleCookies:NO];
的代碼。但有或沒有這個問題仍然存在。那麼對於什麼導致這個問題的其他建議?
試圖that..But仍然沒有luck..I我仍然能夠與不正確的用戶名登錄/密碼.. – Krishnabhadra 2012-04-13 05:39:13
一旦重置模擬器,或者如果您在設備工作,刪除你的應用程序一次,也從內存中刪除cookies,然後再試一次。 – DivineDesert 2012-04-13 05:40:41
在模擬器和設備上都嘗試過。模擬器重新啓動,從設備中刪除應用程序,在註銷時清除cookie並重試..沒有運氣..當您發佈上述評論時,想到相同的步驟.. – Krishnabhadra 2012-04-13 05:44:32