我正在寻找如何对REST Web服务发出POST请求,特别是CakePHP服务,我似乎发现所有人都说要使用ASIHTTPRequest库,但我发现它还没有更新在一年左右的时间里,所以我宁愿使用更新的方法,最好是直接来自iOS。
我知道你可以使用NSURLConnection打电话,但我真的不明白,如果有人能指出我正确的方向,我想对它进行更全面的解释。
此外,我已经使用我的REST API通过使用NSString的stringWithContentOfURL方法从我的服务器成功检索数据,但据我所知,我无法使用它来进行POST调用。
答案 0 :(得分:5)
我通常这样做。
NSURL *url = [NSURL URLWithString:@"http://someurl.com"];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
[req setHTTPMethod:@"POST"];
[req setHTTPBody:self.yourData];
NSHTTPURLResponse __autoreleasing *response;
NSError __autoreleasing *error;
[NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&error];
if (error == nil && response.statusCode == 200) {
// Process response
} else {
// Process error
}
[NSURLConnection sendSynchronousRequest:]
方法还会返回您也可以操作的NSData
对象。
答案 1 :(得分:1)
我正在解决同样的问题(带有CakePHP REST POST后端的iOS前端)。这个帖子非常有帮助。请使用curl尝试以下内容:
curl -d "data[Model][field0]=field0value&data[Model][field1]=field1value" https://pathtoyourapi.com/plugin/controller/function.html
或者
curl -d "data[Model][field0]=field0value&data[Model][field1]=field1value" https://pathtoyourapi.com/plugin/controller/function