【发布时间】:2016-03-08 09:45:07
【问题描述】:
我在另一台机器上有一个创建 JSON 的 PHP 文件,并想从 iOS 应用程序中获取它。
我尝试使用 IP 地址通过 NSURL 从 iOS 应用程序连接
NSURL *url = [NSURL URLWithString:@"http://192.168.xx.xxx/JSON/JSONtoIOS.php"];
NSData *data = [NSData dataWithContentsOfURL:url options:NSDataReadingUncached error:&error];
然后,我在info.plist 文件中添加了以下代码:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
但是,我仍然收到相同的错误消息:
传输安全已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用的 Info.plist 文件配置临时例外。
该 URL 在 Web 浏览器上可以正常打开,但 NSData 返回 nil 时出现问题。
谁能帮我解决这个问题?
编辑:在 (void)viewDidLoad 中使用 NSURLSession
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:[NSURL URLWithString:@"http://192.168.xx.xxx/JSON/JSONtoIOS.php"] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"%@", json);
}];
[dataTask resume];
【问题讨论】:
-
所以您直接将 Info.plist 编辑为 XML 文本?您可能以某种方式弄乱了 XML。
-
我检查了 XML 文本和列表。没有问题。
标签: ios objective-c json nsurl