IOS根据ISBN查找书本信息

一开始是用亚马逊的API,但发现提供的接口内容返回不是中文的,找了半天,还是决定用豆瓣的API

https://api.douban.com/v2/book/isbn/:9787115263049

返回内容是JSON格式

但一般AFNetWorking缺省不支持https, 于是按以下步骤修改:

在pch文件中加入

#import <SystemConfiguration/SystemConfiguration.h>
#import <MobileCoreServices/MobileCoreServices.h>
#define AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES

同时在请求代码时专门处理:

-(void) searchBookByIsbn: (NSString *) isbn
{
    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy];
    securityPolicy.allowInvalidCertificates = YES;
    
    
    
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.securityPolicy = securityPolicy;
    
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    NSString *url = [NSString  stringWithFormat: @"https://api.douban.com/v2/book/isbn/:%@", isbn];
    
   
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    
    //把当前对象转成NSDirectory
    //NSDictionary *objDict = [self allValues];
    // NSLog(@"objDict=%@", objDict);
    [manager GET:url parameters:nil
         success:^(AFHTTPRequestOperation *operation, id responseObject) {
             
             // 解析成功
             //NSLog(@"%@", responseObject);
             
             
             //NSLog(@"str = %@", result);
             [self parseJsonData: (NSData *)responseObject];
         } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
             // 解析失败
             NSLog(@"error:++++%@",error.localizedDescription);
            // [self showError: error.localizedDescription];
             
         }];
}

//ios5中apple增加了解析JSON的api——NSJSONSerialization
//NSJSONSerialization在效率上完胜SBJSON、TouchJSON、YAJL、JSONKit、NextiveJson
-(void) parseJsonData:(NSData *)data
{
    NSError *error;
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
    if (json == nil) {
        return;
    }
    
    //如果大于0,代表是后台报的错,则需要弹出消息框提示错误信息
    if ([json objectForKey: @"code"])
        if ([[json objectForKey: @"code"]intValue] > 0)
        {
            NSLog(@"error: %@", [json objectForKey:@"msg"]);
           // [self showError:@"查询不到指定编码的书号"];
            return;
        }
   NSLog(@"json info: %@\t\n",json);

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值