我如何从PHP服务器返回变量到iOS ?(使用ASIHTTP)


How can I return variables from PHP server to iOS ? (use ASIHTTP)

我有一个文件从iOS到服务器(使用PHP),我希望PHP服务器返回一些变量给iOS,我使用

>[request responseString] 

获取服务器响应,

但它总是返回我的HTML代码(关于我的网页的第一页)我想从我的网页的第三页返回变量。

换句话说,它的意思是将一些东西从PHP传回iOS。

你可能有一些像

include('header.html');
PHP中的

,加载iOS中的html。你需要确保脚本的ONLY输出是你想要返回给iOS的数据,例如

<?php
... process data from iOS
echo $data_to_send_back_to_ios;

任何地方脚本的任何输出将显示在您的客户端中。

注意,你不能"post back"到ios。这意味着你的ios设备正在运行一个web服务器。不需要一个完整的第二个http连接来返回数据…您已经与服务器建立了连接,通过该连接可以发送ios->php post数据。使用该连接返回响应。

有不同的方法可以实现这一点,最流行的方法之一是使用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];
现在你有了*postVars数组中所有的$_POST变量

这是一个非常适合我的教程。也许你可以这样做:

part1:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app

第二部分:http://www.raywenderlich.com/2965/how-to-write-an-ios-app-that-uses-a-web-service