2012-03-29 167 views
0

我一個試圖登錄到一個簡單的網頁我做了,我只好在代碼 - (IBAction爲){}登錄到網站與asihttprequest

當我按下它應該獲取數據按鈕

這裏是我的代碼

-(IBAction)fetchData:(id)sender { 
NSURL *url = [NSURL URLWithString:@"http://rssit.site90.com/login.php"]; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request setRequestMethod:@"POST"]; 
[request addPostValue:@"" forKey:@"username"]; 
[request addPostValue:@"" forKey:@"password"]; 


[request setDelegate:self]; 
[request startAsynchronous]; 
NSLog(@"%d, %@", request.responseStatusCode, [request responseString]); 

} 

當我運行它,它會返回0(零)我看着爲asihttprequest頭文件,這意味着沒有身份驗證需要的?但該網站上有登錄。

進出口投入的用戶名和密碼,我只是didnt列表它放在這裏

+3

您可能想查找「異步」的含義;-) – JosephH 2012-03-29 13:21:44

回答

1

重寫代碼如下,賓果....

-(IBAction)fetchData:(id)sender 
{ 
    NSURL *url = [NSURL URLWithString:@"http://rssit.site90.com/login.php"]; 
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
    [request setRequestMethod:@"POST"]; 
    [request addPostValue:@"" forKey:@"username"]; 
    [request addPostValue:@"" forKey:@"password"]; 
    [request setDelegate:self]; 
    [request startAsynchronous]; 

    //Add finish or failed selector 
    [request setDidFinishSelector:@selector(requestLoginFinished:)]; 
    [request setDidFailSelector:@selector(requestLoginFailed:)]; 

    NSLog(@"%d, %@", request.responseStatusCode, [request responseString]); 

} 

- (void)requestLoginFinished:(ASIHTTPRequest *)request 
{ 
//Check response of request here and act accordingly 
NSString *yourResponse = [request responseString]; //corrected here please change it to responseString 
//Parse above response and check it. 
} 


- (void)requestLoginFailed:(ASIHTTPRequest *)request 
{ 
//some error was there processing request 
//Check error 
NSError *error = [request error]; 
NSLog(@"Failed ---> %@",[error localizedDescription]); 
} 

當你做出要求,你需要等到請求完成儘管你正在提出異步請求,因爲它是登錄信息,你需要等到響應結束。

+0

當我嘗試終止應用程序由於未捕獲的異常'NSInvalidArgumentException',原因:' - [ASIFormDataRequest響應]:無法識別的選擇器發送到實例 – Huntaz556 2012-03-29 13:38:38

+0

對不起應該是[request responseString]。我已經更新了我的答案。請再檢查一次。 – 2012-03-29 15:24:42

+0

好吧,當我這樣做時,它所做的只是顯示登錄頁面的html代碼,但它不會登錄 – Huntaz556 2012-03-29 15:46:11