请求NSURLRequest

我试图做一个使用数据库的应用程序(实际上在我的本地主机),我尝试使用ASIHTTPRequest,但有这么多麻烦与iOS 5(我学会了如何使用ASIHTTPRequestforms: http ://www.raywenderlich.com / 2965 /如何到写的-IOS-APP-该用途-A-Web服务

现在我想用苹果提供的API:NSURLRequest / NSURLConnection等,…

我阅读了苹果在线指南,并创build了第一个代码:

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://localhost:8888/testNSURL/index.php"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [request setValue:@"Hello world !" forKey:@"myVariable"]; NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:request delegate:self]; if (theConnection) { receiveData = [NSMutableData data]; } } 

我添加了API所需的代表

 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data - (void)connection:(NSURLConnection *)connection - (void)connectionDidFinishLoading:(NSURLConnection *)connection 

这是我的PHP代码:

 <?php if(isset($_REQUEST["myVariable"])) { echo $_REQUEST["myVariable"]; } else echo '$_REQUEST["myVariable"] not found'; ?> 

那么,什么是错的? 当我启动应用程序,它将立即崩溃与这个输出:

**

 **> 2012-04-09 22:52:16.630 NSURLconnextion[819:f803] *** Terminating app > due to uncaught exception 'NSUnknownKeyException', reason: > '[<NSURLRequest 0x6b32bd0> setValue:forUndefinedKey:]: this class is > not key value coding-compliant for the key myVariable.' > *** First throw call stack: (0x13c8022 0x1559cd6 0x13c7ee1 0x9c0022 0x931f6b 0x931edb 0x2d20 0xd9a1e 0x38401 0x38670 0x38836 0x3f72a > 0x10596 0x11274 0x20183 0x20c38 0x14634 0x12b2ef5 0x139c195 0x1300ff2 > 0x12ff8da 0x12fed84 0x12fec9b 0x10c65 0x12626 0x29dd 0x2945) terminate > called throwing an exception** 

**

我想,这意味着有些东西是错误的这一行:

 [request setValue:@"Hello world !" forKey:@"myVariable"]; 

实际上,如果我评论这一行的话。

我的问题是:如何使用NSURLRequest和NSURLConnexion将数据发送到PHP API?

感谢您的帮助。

PS顺便说一句,我有关于服务器,PHP等知识贫乏,…

尝试这个:

 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://localhost:8888/testNSURL/index.php"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [request setHTTPMethod:@"POST"]; NSString *postString = @"myVariable=Hello world !"; [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]]; NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:request delegate:self]; if (theConnection) { receiveData = [NSMutableData data]; } 

在这里看到https://stackoverflow.com/a/6149088/1317080

尝试下面的代码,它是使用Web服务(json)的简单方法之一

 NSURL *url = [NSURL URLWithString:@"yourURL"]; NSMutableURLRequest *urlReq=[NSMutableURLRequest requestWithURL:url]; NSURLResponse *response; NSError *error = nil; NSData *receivedData = [NSURLConnection sendSynchronousRequest:urlReq returningResponse:&response error:&error]; if(error!=nil) { NSLog(@"web service error:%@",error); } else { if(receivedData !=nil) { NSError *Jerror = nil; NSDictionary* json =[NSJSONSerialization JSONObjectWithData:receivedData options:kNilOptions error:&Jerror]; if(Jerror!=nil) { NSLog(@"json error:%@",Jerror); } } } 

希望这可以帮助。