我已经将一个文件从 iOS 发布到服务器(使用 PHP),我希望 PHP 服务器将一些变量返回给 iOS,我使用
>[request responseString]
获取服务器响应,
但它总是返回我的 HTML 代码(关于我的网页的第一页),我想从我的网页的第三页返回变量。
换句话说,它意味着从 PHP 向 iOS 发布一些东西。
我能怎么做 ?
我已经将一个文件从 iOS 发布到服务器(使用 PHP),我希望 PHP 服务器将一些变量返回给 iOS,我使用
>[request responseString]
获取服务器响应,
但它总是返回我的 HTML 代码(关于我的网页的第一页),我想从我的网页的第三页返回变量。
换句话说,它意味着从 PHP 向 iOS 发布一些东西。
我能怎么做 ?
你可能有类似的东西
include('header.html');
在您的 PHP 某处,加载您在 iOS 中看到的 html。您需要确保脚本的唯一输出是您要返回给 iOS 的数据,例如
<?php
... process data from iOS
echo $data_to_send_back_to_ios;
脚本的任何输出,ANYWHERE,都将显示在您的客户端中。
请注意,您不会“回发”到 ios。这意味着您的 ios 设备正在运行网络服务器。不需要完整的第二个 http 连接来返回数据……您已经与服务器建立了连接,您可以通过该连接发送 ios->php 发布数据。使用该连接返回响应。
这是一个对我来说效果很好的教程。也许它对你有用:
第 1 部分: http ://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app
第 2 部分: http ://www.raywenderlich.com/2965/how-to-write-an-ios-app-that-uses-a-web-service
有不同的方法可以实现这一点,最流行的方法之一是使用 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 变量。