我有一个小问题。我正在尝试使用 php 和 Json 从外部数据库中检索信息。如果我从 localhost 尝试,它可以工作,但如果我修改 URL 并放置外部 URL,它不会返回任何内容。简而言之,如果我在本地工作(xampp 和 phpmyadmin)工作,我会从数据库中返回人口,但如果我尝试从外部数据库中进行,则不起作用。代码有问题吗?如果我运行托管在外部服务器上的 php 脚本,它会返回数据。这是Objective-C代码的问题
//Método que devuelve las poblaciones
-(NSMutableArray * )obtenerPoblaciones
{
pobla = [[NSMutableArray alloc] init];
URLpobalciones = @"http://deproba.netau.net/devolver_poblaciones.php";
NSURL *url = [NSURL URLWithString:URLpobalciones];
NSData *data = [NSData dataWithContentsOfURL:url];
NSError *error;
NSArray *items = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSDictionary *item = [[NSDictionary alloc] init];
// This will print all the names of people in your JSON.
for (item in items)
{
NSString *poblae =[NSString stringWithFormat:[item valueForKey:@"nombre"]];
[pobla addObject:poblae];
}
return pobla;
}
修改
再一次问好!我修改了代码。我想得到一些简单的东西,然后让它变得更复杂。我修改了php脚本和objective-c代码
PHP 文件
<?php
header('Content-type: application/json');
$miArray = array(utf8_encode("París")=>"Francia", "Madrid"=>utf8_encode("España"));
echo(json_encode($miArray));
?>
目标 C 代码
//NSURL *url = [NSURL URLWithString:@"http://search.twitter.com/search.json?q=g8production"];
NSURL *url = [NSURL URLWithString:@"http://prueba.vacau.com/php/prueba.php"];
NSData *jsonData = [NSData dataWithContentsOfURL:url];
if (jsonData != nil) {
NSError *error = nil;
id result = [NSJSONSerialization JSONObjectWithData:jsonData options: (NSJSONReadingMutableContainers) error:&error];
if (error == nil) {
NSLog(@"Poblacion %@",result);
}else
{
NSLog(@"jsonData is empty");
}
}
如果我使用 URL (http://search.twitter.com/search.json?q=g8production),它可以正常工作,但如果我使用我的 php 脚本则不起作用。使 if / else 语句打印:jsonData is empty 希望你能帮助我。再次感谢!