gpt4 book ai didi

ios - iOS 中的 itunes JSON 请求返回一个 XML 对象

转载 作者:行者123 更新时间:2023-11-29 03:07:23 25 4
gpt4 key购买 nike

我想在 iOS 应用程序中从 iTunes 访问信息。

我正在执行常规 http 请求(以 POST 形式或直接在 URL 中发送参数)

该 URL 有效,因为如果我使用浏览器,我会得到预期的结果(JSON 格式)。

{ “结果计数”:0, “结果”: []

但在 iOS 中,JSONObjectWithData 返回一个 null 对象。

检查数据对象后,我发现返回的对象是一个XML对象(不包含所需信息,而是一堆XML键/值)

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://itunes.apple.com/search"]];

NSError *directError;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&directError];

if (!directError) {
NSLog(@"%@", jsonDict);

} else {
NSLog(@"JSON Error: %@", directError.localizedDescription);
}

我研究了任何可能的 POST 参数以强制响应为 JSON,但没有找到任何内容。

附件是数据对象中包含的信息示例(XML 解析后):

菜单

关键标题

主打音乐

字符串网址

https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewGenre?id=34

字符串项目

关键标题

iTunes 上的 key 免费

字符串网址

问候...恩里克

最佳答案

更新:我还建议您不要使用 NSData dataWithURL 方法来获取内容,因为它会以同步方式触发请求。如果您请求大量数据,那么这将卡住 UI 线程。对于抓取,你应该几乎总是使用异步操作。

我正在使用以下代码,它返回 JSON 响应,稍后将其转换为 json 对象,如下所示:

-(void) setup
{
NSString *iTunesURL = @"https://itunes.apple.com/search?term=pink-floyd";

NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:[NSURL URLWithString:iTunesURL] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

NSLog(@"SUCCESS");

}] resume];
}

关于ios - iOS 中的 itunes JSON 请求返回一个 XML 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22613930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com