【发布时间】:2011-03-22 15:53:00
【问题描述】:
好的,我很难找到不仅仅是使用 JSON 或 ASIHTTPRequest 的答案。但我想我的问题更具体一点。我只是将编程作为一种爱好,所以我不是专家。话虽如此,我对此的抽象理解可能完全不符合实际,所以这个问题可能无法回答。
基本上,我想做的是向 Web 服务器上的 pHp 脚本发送 HTTP 请求,然后让 Web 服务器返回一个值,比如说一个简单的整数值或布尔值(想想一个返回的登录脚本是/否)。在这一点上,我并不担心安全问题,因为我正在努力理解这一点。
从我收集到的东西,我会用一些东西来达到
的效果// Create the request.
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com/"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
// create the connection with the request
// and start loading the data
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
// Create the NSMutableData to hold the received data.
// receivedData is an instance variable declared elsewhere.
receivedData = [[NSMutableData data] retain];
} else {
// Inform the user that the connection failed.
}
这是来自 Apple 文档,我大体上理解这一点。所以假设它通过 URL 将信息发送到一个 pHp 文件,然后:
//pHp file gets information
//pHp file uses that information to check against a mySQL database
//pHp now has the variable $result with a value of 1 in it
另外,假设我可以做到这一切。我的问题变成了,如何将 pHp 中的值返回给 iOS 'NSMutableData' 变量。我会“回应”它吗?例如:
echo "$result";
然后这就是放入 NSMutableData 的信息(变量 $result)?我知道如果我是通过 pHp/HTML 等严格执行的,我可能会使用会话变量之类的东西来允许更多页面访问该变量。
或者是否有其他一些我不知道的将数据返回到 NSMutabalData 的 pHp 函数?基本上这是我遇到问题的两者之间的联系,从 pHp 脚本返回数据 - 我真的不明白 NSMutableData 正在“获取”什么。
我已经尽量详细了,很抱歉这个问题太长了。请假设这就是我想要做的,返回一个值。安全性并不重要(我试图在最简单的层面上做到这一点以理解它然后在其上构建)。我试图避免任何模糊的答案,例如“编写 Web 服务”或“使用 _”来做到这一点,我确信有很多更好的方法可以做到这一点,但我我不是急于推出一个程序——我只是想学习这个,以便更好地理解 NSURLConnection、pHp、NSMUtableData 以及所有齿轮如何组合在一起。如果我的要求在技术上是不可能的并且没有意义,我也很欣赏这个答案。我已经尝试过搜索,但没有为这块拼图找到满意的答案。
提前致谢。
编辑:
我试过了
...
NSMutableData *receivedData = [[NSMutableData alloc] init];
receivedData = [[NSMutableData data] retain];
NSString *receivedDataString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
label.text = receivedDataString;
...
在服务器上调用一个pHp文件基本上是:
<?pHp
$result = "TRUE";
var_dump($result);
?>
这不起作用。我认为我的问题出在 pHp 方面,是否有一些特殊的命令可以将值返回给 NSMutableData 对象? (只是一些额外的信息可能会进一步澄清我的问题)。
编辑二:
我似乎无法直接回复,可能是因为我以前只匿名使用过该网站,而且我有一个全新的帐户 :) 感谢您的回答 Charles,我尝试使用 echo 和 var_dump,两者都没有似乎将数据发回(我的 NSMutableData 对象在转换为 NSString 时似乎是空的 - 除非我的目标 C 是错误的,但我已经将它解析到几乎最低限度,所以我不相信是这种情况) .
【问题讨论】:
-
顺便说一下,它是“PHP”,而不是“pHp”。
-
我合并了您的帐户,因此您现在应该可以对您的问题的答案发表评论了。
标签: php objective-c ios nsurlconnection nsmutabledata