2011-05-03 74 views
1

发布字符串是新的Web服务为iPhone和有一个快速的问题。我想发送一些值到服务器上的php脚本,但是由于有很多值,我不想将它们包含在实际的URL中(在PHP中以$ _GET访问它们)。我想发送一个XML字符串,它将允许我的PHP脚本获取所有数据并处理它。到目前为止,我有用于发送数据下面的模板:我如何从iPhone应用程序获得服务器端

NSURL *someURL = ... 
NSString *xmlString = @"This would be the entire XML message"; 
NSData *data = [xmlString dataUsingEncoding:NSUTF8StringEncoding]; 
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:someURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:90]; 

[req setHTTPBody:data]; 
[req setHTTPMethod:@"POST"]; 

现在,我的理解是,这将提交XML到PHP脚本。我的问题是我将如何获得这在服务器端... $ _POST ['?????']值是什么?

感谢

回答

0

你可以阅读:

$HTTP_RAW_POST_DATA 

或做:

$rawPost = file_get_contents("php://input"); 

从手册:

PHP://输入允许你从请求读取原始数据 身体。在 POST请求的情况下,preferrable到 $ HTTP_RAW_POST_DATA,因为它不 依赖于特殊的php.ini设置。 此外,对于其中 $ HTTP_RAW_POST_DATA未填充 默认的情况下,它是一种潜在的较少 存储器密集型替代 激活 always_populate_raw_post_data。 php://输入不适用于 enctype =“multipart/form-data”。

欲了解更多信息,请访问:

http://php.net/manual/en/wrappers.php.php

http://php.net/manual/en/reserved.variables.httprawpostdata.php

+0

感谢webbiedev,所以我是对的假设回声$ rawPost;会回显Obj-C代码发布的XML(来自所提供的示例)?对不起,我不能对此进行测试,因为我不会有访问我的MAC,直到周末,但想clearify这样我就可以打在甲板上跑步,可以这么说:) – Pazzy 2011-05-03 20:20:30

+0

这是原料,因此将被编码。将'$ rawPost'传递给'urldecode()',你很好。 – webbiedave 2011-05-03 20:22:59

+0

非常感谢...希望这将工作没有问题:) – Pazzy 2011-05-03 20:48:11

0

你可以做print_r($_REQUEST)看到所有的GET/POST变量。

既然你直接调用的页面,我可能会建立一个快速的脚本将数据记录到文件时,页面被调用。

相关问题