我需要知道以下两种url连接方法之间的区别吗?
这两种方法的意义何在?
在哪种情况下首选哪种方法?
方法1:
文件
#进口
#define kPostURL @"http://localhost/php/register.php"
#define kemail @"email"
#define kpassword @"password"
@interface signup : UIViewController
{
...
...
NSURLConnection *postConnection;
}
@property ...
...
@end
file.m
NSMutableDictionary *input=[[NSMutableDictionary alloc]init];
...
...
...
NSMutableString *postString = [NSMutableString stringWithString:kPostURL];
[postString appendString: [NSString stringWithFormat:@"?%@=%@", kemail, [input objectForKey:@"email"] ]];
[postString appendString: [NSString stringWithFormat:@"&%@=%@", kpassword, [input objectForKey:@"password"] ]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]];
[request setHTTPMethod:@"POST"];
postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
NSLog(@"postconnection: %@", postConnection);
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: postString ]];
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];
NSLog(@"serverOutput = %@", serverOutput);
方法2:
NSString *post =[NSString stringWithFormat:@"email=%@&password=%@",[input objectForKey:@"email"], [input objectForKey:@"password"]];
NSString *hostStr = @"http://localhost/frissbee_peeyush/php/login.php?";
hostStr = [hostStr stringByAppendingString:post];
NSLog(@"HostStr %@",hostStr);
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];
NSLog(@"serverOutput %@", serverOutput);
如果我只需要使用标题信息就可以连接url怎么办?
问题:对于登录和注册,这些方法都很好,但是每当我要插入包含特殊字符(例如@,/,_等)的任何字符串时,它都无法执行任何操作。
请引导我。
最佳答案
甚至您已经实现的方法1也不完整,因为应该实现NSUrlConnection的许多委托以获取数据,处理错误,代理,身份验证等。最好使用第一种方法,而不要使用您使用的方法。NSUrlConnection在行为上是异步的,因此您不必等到加载URL即可。
NSUrlConnection Class Reference
第二种方法在遇到NSData中的NSUrl参数时,仅将其作为sson命中该URL。而且,您对Web服务交互没有太多控制。
NSUrl Class Reference
要获得NSUrlConnection的实现,您可以通过
NSUrlConnection Tutorial
Url With Special Characters:-
[NSURL URLWithString:[string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
关于iphone - URL连接:以下内容有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10549881/