iOS からサーバーにファイルを POST しました (PHP を使用) があり、PHP サーバーがいくつかの変数を iOS に返すようにします。
>[request responseString]
サーバーの応答を取得するには、
ただし、常に HTML コード (Web の最初のページについて) が返され、Web の 3 ページ目から変数を返したいと考えています。
つまり、PHP から iOS に何かを POST することを意味します。
どのようにできるのか ?
iOS からサーバーにファイルを POST しました (PHP を使用) があり、PHP サーバーがいくつかの変数を iOS に返すようにします。
>[request responseString]
サーバーの応答を取得するには、
ただし、常に HTML コード (Web の最初のページについて) が返され、Web の 3 ページ目から変数を返したいと考えています。
つまり、PHP から iOS に何かを POST することを意味します。
どのようにできるのか ?
あなたはおそらく次のようなものを持っています
include('header.html');
PHP のどこかで、iOS で表示されている html をロードします。スクリプトの唯一の出力が、iOS に返したいデータであることを確認する必要があります。
<?php
... process data from iOS
echo $data_to_send_back_to_ios;
スクリプトからのANY出力、ANYWHERE がクライアントに表示されます。
iOSに「ポストバック」しないことに注意してください。これは、iOS デバイスが Web サーバーを実行していることを意味します。データを返すために本格的な 2 番目の http 接続は必要ありません... サーバーへの接続は既に確立されており、それを介して ios->php 投稿データを送信します。その接続を使用して応答を返します。
これを実現するにはさまざまな方法があります。最も一般的な方法の 1 つは、出力を JSON 形式でシリアライズすることです。これにより、iOS での解析が容易になります。だからあなたがする必要があるのはPHPでこれを使うことです
<?php
// Only PHP code you need to pass to iOS
echo json_encode($_POST);
?>
iOS では、最初にこのライブラリをダウンロードし、Xcode プロジェクトhttps://github.com/TouchCode/TouchJSONに含めてから、応答を取得した後に $_POST 変数を取得するためにこれを行う必要があります。
NSString *jsonString = [request responseString];
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
NSArray *postVars = [[CJSONDeserializer deserializer] deserializeAsArray:jsonData error:&error];
これで、すべての $_POST 変数が *postVars 配列に含まれています。