繁体   English   中英

发布数据以从IOS中的SQL查询中检索信息

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM