我有一個使用webView的應用程序。在網站的主屏幕中,我想使用用戶在應用程序設置選項中輸入的用戶名和密碼進行登錄。目前我有這個代碼,我在解決方案中看到在這個論壇上提出的類似問題。但它不起作用(它沒有爲另一個人做)。從設置用戶名和密碼首選項登錄
-(IBAction)cachepressed:(id)sender{
NSString *baseurl=[[NSUserDefaults standardUserDefaults] stringForKey:@"url_preference"];
NSString *username= [[NSUserDefaults standardUserDefaults] stringForKey:@"name_preference"];
NSString *password= [[NSUserDefaults standardUserDefaults] stringForKey:@"pswrd_preference"];
NSString* content = [NSString stringWithFormat:@"username=%@&password=%@", username, password];
NSData *data=[content dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postlength=[NSString stringWithFormat:@"%d",[data length]];
NSString *loginpage= [baseurl stringByAppendingString:@"/index.php?title=Special:UserLogin"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:loginpage]];
[request setHTTPMethod:@"POST"];
[request setValue:postlength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:data];
NSError *error=nil;
NSURLResponse *response=nil;
NSData *result=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *HTMLString = [[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding];
[webView loadHTMLString:HTMLString baseURL:[NSURL URLWithString:loginpage]];
}
我不太確定以[request setValue ...]開頭的兩行代碼。有人可以提出一個解決方案嗎?這將是一個很大的幫助。感謝預期。
感謝您的答覆。正如您指出的那樣,我更正了字段名稱。但我不瞭解其他兩點。有沒有辦法找出答案? – gamersoul
好吧,數字2是不太可能的,大多數網站允許外部POST請求。對於數字3,我想最簡單的方法是查看瀏覽器中的網站源代碼。鏈接到該網站將有所幫助 – BBog