在iOS中检索部分响应,将POST请求发送到发送另一个POST请求的PHP表单

时间:2013-08-01 17:08:00

标签: php ios objective-c post curl

我有一个iOS应用程序,它向PHP表单发送POST请求。我修改了PHP表单,以便向第三方API发送另一个POST请求(使用cURL)。问题是在iOS中, returnString 是来自cURL的响应,我想从cURL响应中返回一些部分。

iOS代码:

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSMutableData *body = [NSMutableData data];
//fill body
[request setHTTPBody:body];
//return and test
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"returnString = %@",returnString);

在PHP中我有这个:

$post = '{"score":1337,"playerName":"Sean Plott","cheatMode":false}';
$theurl = "https://api.parse.com/1/classes/GameScore";
$ch = curl_init($theurl);

$headers = array(
    'X-Parse-Application-Id: myAppID',
    'X-Parse-REST-API-Key: myKey',
    'Content-type: application/json',
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 

$response = curl_exec($ch);
$responseArray = json_decode($response, true);
echo $responseArray[0];

正如您所看到的,我正在尝试仅返回 responseArray 的第一个元素。但是,我得到了cURL POST的完整响应(即使没有回声)。

我知道我可以修改iOS应用来解析完整的响应并获得第一个元素。但是,我试图不更新应用程序只是用于返回带有echo语句的单个元素的后端方法。

这可能吗?如何让PHP不返回cURL POST的完整响应,只返回其中的一部分?

谢谢!

0 个答案:

没有答案