1

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

>[request responseString] 

获取服务器响应,

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

换句话说,它意味着从 PHP 向 iOS 发布一些东西。

我能怎么做 ?

4

3 回答 3

1

你可能有类似的东西

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 发布数据。使用该连接返回响应。

于 2013-04-12T16:42:01.367 回答
0

这是一个对我来说效果很好的教程。也许它对你有用:

第 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

于 2013-04-12T19:56:55.353 回答
0

有不同的方法可以实现这一点,最流行的方法之一是使用 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 变量。

于 2013-04-12T17:14:25.720 回答