我是iphone开发的新手。我正在测试来自:
的用户名iphone / obj-c - > php - > Database / MySql - > php - >回到iphone
我传递用户名时遇到问题。这是代码:
NSString *hostStr =[NSString stringWithFormat:@"localhost/username.php?username=%@", tf_username.text];
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSUTF8StringEncoding];
NSLog(@"Server output: %@", serverOutput);
我的php文件(username.php)
<?php
// for testing, i simply output what i received
if(!empty($_GET['username'])){
echo $_GET['username'];
} else {
echo "No parameters";
}
?>
这是我输入时的结果:
Enter I Result
=============================================
test I Server Output: test
test test I Server Output:
当我有'空格'时,它将返回空白。在PHP中有这个URLEncode,我必须首先在obj-c中编码字符串吗?
我的方法有哪些安全漏洞? (我知道有很多)
从Web服务器数据库获取数据时,有没有更好的方法/方法? (比如我的方法是:obj-c - &gt; php - &gt; obj-c)
由于
答案 0 :(得分:0)
NSString
的{{3}},这样可以正常使用。唯一的例外是它会将空格转换为%20
而不是+
,但您可以在编码后轻松进行字符串替换。stringByAddingPercentEscapesUsingEncoding:
。桌面应用程序调用远程API是很正常的。我会正式化您的输入和输出,例如使用HTTP RESTful APIs或XML,如果请求/响应正文中需要任何内容。 PS:+URLWithString
应该真正需要一个完整的网址(包括'http://')。