Ios5 新IOS:无法重定向url
这是我的第一个IOS项目。很难登录工作。该站点已刷新到另一个url。我尝试在meta_刷新中向url发送另一个请求,但应用程序挂起。我肯定我做错了什么,但我使用的是XCode 4.4,所以很多NSURLConnection委托方法都被弃用了 以下是我正在做的:Ios5 新IOS:无法重定向url,ios5,nsurlconnection,xcode4.4,Ios5,Nsurlconnection,Xcode4.4,这是我的第一个IOS项目。很难登录工作。该站点已刷新到另一个url。我尝试在meta_刷新中向url发送另一个请求,但应用程序挂起。我肯定我做错了什么,但我使用的是XCode 4.4,所以很多NSURLConnection委托方法都被弃用了 以下是我正在做的: NSString *urlAsString = baseURL; urlAsString = [urlAsString stringByAppendingString:@"?user[login]=username"]; urlAsStr
NSString *urlAsString = baseURL;
urlAsString = [urlAsString stringByAppendingString:@"?user[login]=username"];
urlAsString = [urlAsString stringByAppendingString:@"&user[password]=password"];
urlAsString = [urlAsString stringByAppendingString:@"&origin=splash"];
NSURL *url = [NSURL URLWithString:urlAsString];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setTimeoutInterval:30.0f];
[urlRequest setHTTPMethod:@"POST"];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
if([data length] > 0 && error == nil){
NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"HTML = %@", html);
NSRange obj = [html rangeOfString:@"http-equiv=\"refresh\""];
NSInteger len = obj.length;
} else if([data length] == 0 && error == nil) {
NSLog(@"No data was returned.");
} else {
NSLog(@"Error happened = %@", error);
}
以下是我得到的:
另一个问题是,我读到应该使用异步连接。问题是,我需要从网站上抓取的数据显示在屏幕上。如果我在返回数据之前显示屏幕,那么我将没有任何数据——或者我不理解这是如何工作的
谢谢。
--托尼我想也许你是个混血儿。您正在使用GET值设置一个字符串url,然后将HTTPMethod设置为POST,我不知道这是否可以正常工作 以下是我必须用POST发送值的代码:
NSString *post = [NSString stringWithFormat:@"&user_login=%@&user_password=%@&origin=%@,username,password, splash];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:baseURL]]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];