好的,我很难找到不仅仅是使用 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 对象?(只是一些额外的信息可能会更多地澄清我的问题)。
编辑二:
我似乎无法直接回复,可能是因为我以前只匿名使用过该网站,而且我有一个全新的帐户 :) 感谢您的回答查尔斯,我尝试使用 echo 和 var_dump,似乎都没有发送数据返回(我的 NSMutableData 对象在转换为 NSString 时似乎是空的——除非我的目标 C 是错误的,但我已经将它解析到几乎最低限度,所以我不相信是这种情况)。