我只是测试了face.com人脸识别api,我在json请求上取得了成功:
NSString *url = @"http://api.face.com/faces/detect.json?api_key=myapi&api_secret=mysecret&urls=http://userserve-ak.last.fm/serve/_/47363849/Christina+Aguilera+HQ+PNG.png";
// Create new SBJSON parser object
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
// Perform request and get JSON back as a NSData object
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
// Get JSON as a NSString from NSData response
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
// parse the JSON response into an object
// Here we're using NSArray since we're parsing an array of JSON status objects
NSDictionary *obj = [parser objectWithString:json_string];
//
NSString *status = [obj objectForKey:@"status"];
//
NSLog(@"status: %@", status);
当我传递api密钥,秘密和网上的图像作为GET参数时,这是有效的,例如:
http://api.face.com/faces/detect.json?api_key=4b4b4c6d54c37&api_secret= &urls= http://farm3.static.flickr.com/2566/3896283279_0209be7a67.jpg
现在,我想从我的应用程序上传原始图像数据......但这在网站上没有很好的记录:
http://developers.face.com/docs/api/faces-detect/
它说:
代码: 可选[无名称]照片的原始图像数据(当代替网址时,上传图像)
这是问题所在:
如何将原始数据作为POST以及apikey和secret传递? 我知道它一定是POST,但是怎么样?
答案 0 :(得分:2)
原始数据= NSData,所以您需要做的就是将imageData附加到URL,如下所示。
NSString *url = [NSString stringWithFormat:@"http://api.face.com/faces/detect.json?api_key=myapi&api_secret=mysecret&code=%@", imageData];