POST リクエストを PHP フォームに送信する iOS アプリがあります。別の POST リクエスト (cURL を使用) をサードパーティ API に送信するように PHP フォームを変更しました。問題は、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];
ご覧のとおり、私は iOS にresponseArrayの最初の要素のみを返そうとしています。ただし、cURL POST の完全な応答 (エコーなしでも) を取得します。
完全な応答を解析して最初の要素を取得するように iOS アプリを変更できることはわかっています。ただし、エコーステートメントで単一の要素を返すために使用されていたバックエンドメソッドだけをアプリを更新しないようにしています。
これは可能ですか?PHP が cURL POST の完全な応答とその一部だけを返さないようにするにはどうすればよいですか?
ありがとう!