[英]Post data to retrieve information from SQL Query in IOS
我是IOS的新手,我正尝试从Json格式的php文件中获取数据。 我想要获取此数据的方式是通过将信息从应用程序发送到php sql查询。 我尝试了以下方法:
IOS:
NSString *myRequestString = [NSString stringWithFormat:@"%@%@",@"ID",newsID];
NSLog(myRequestString);
NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
[request setURL:[NSURL URLWithString:@"http://domain.com/file.php"]];
[request setHTTPMethod: @"REQUEST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setHTTPBody: myRequestData];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; //Or async request
NSError *error=nil;
NSArray *results = [NSJSONSerialization JSONObjectWithData:returnData options:0 error:&error];
PHP:
$query="SELECT news_description FROM newsTable WHERE newsID = ".$_REQUEST['ID'].";
$result=mysql_query($query);
while($row=mysql_fetch_assoc($result))
$output[]=$row;
print(json_encode($output));
我研究了一些想法,但不幸的是它没有将信息发送到php文件。 我尝试将$ _REQUEST更改为$ _POST,我也在我的php文件中创建了一个变量来存储$ _POST,但没有运气。 有什么建议么? 请帮忙! 谢谢!
在GitHub上尝试JWURLConnection 。 如果您喜欢编写自己的代码,则可以查看源代码。
编辑为您提供更多信息:您正在代码中创建一个纯HTTP请求。 而且您发送的HTTP正文绝对不符合HTTP。 x-www-form-urlencoded
内容类型必须遵循RFC定义的非常特定的规则。
当我再次查看您的代码时,我看到了一个问题。 您缺少等号:
[NSString stringWithFormat:@"%@=%@",@"ID",newsID]
^^^
我建议阅读RFC规范,或者如前所述,遵循上述类中实现的代码,它严格遵循规则。
如果无法使用该类解决问题,则PHP脚本中可能会出现问题,因此您必须提供有关脚本的更多信息。
编辑二
当我再次查看您的代码时,我会发现另一个问题。 您没有正确设置请求方法。 在这里设置
[request setHTTPMethod:@"REQUEST"];
这不是有效的HTTP方法! 如果要发布,则必须将其设置为@"POST"
或为get @"GET"
为head @"HEAD"
等等,请参见RFC 2616 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.