1

iOS からサーバーにファイルを POST しました (PHP を使用) があり、PHP サーバーがいくつかの変数を iOS に返すようにします。

>[request responseString] 

サーバーの応答を取得するには、

ただし、常に HTML コード (Web の最初のページについて) が返され、Web の 3 ページ目から変数を返したいと考えています。

つまり、PHP から iOS に何かを POST することを意味します。

どのようにできるのか ?

4

3 に答える 3

1

あなたはおそらく次のようなものを持っています

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 投稿データを送信します。その接続を使用して応答を返します。

于 2013-04-12T16:42:01.367 に答える
0

これを実現するにはさまざまな方法があります。最も一般的な方法の 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 配列に含まれています。

于 2013-04-12T17:14:25.720 に答える