【简单】请教调用api的问题

zioc2014 2014-08-14 04:29:21
这个api怎么调用?现在是用AFNetworking

http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDUSD=x+USDCNY=x+USDHKD=x+USDJPY=x+USDTHB=x+USDEUR=x+USDGBP=x

汇率的api
...全文
181 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zioc2014 2014-08-20
  • 打赏
  • 举报
回复
引用 9 楼 zhangao0086 的回复:
那是url的问题吧,你直接用浏览器去请求,看能不能得到你想要的数据
刚试了一下,确实是url的问题。多谢你了。
Bannings 2014-08-20
  • 打赏
  • 举报
回复
那是url的问题吧,你直接用浏览器去请求,看能不能得到你想要的数据
zioc2014 2014-08-20
  • 打赏
  • 举报
回复
引用 7 楼 zhangao0086 的回复:
[quote=引用 6 楼 zioc2014 的回复:] [quote=引用 2 楼 zhangao0086 的回复:] 你这个请求就很简单了,请求:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [CustomResponseSerializer new];
[manager GET:@"http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDUSD=x+USDCNY=x+USDHKD=x+USDJPY=x+USDTHB=x+USDEUR=x+USDGBP=x"
  parameters:nil
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
         NSLog(@"success");
     }
     failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"failed");
     }];
用AFHTTPResponseSerializer的子类去解析:

@interface CustomResponseSerializer : AFHTTPResponseSerializer

@end

@implementation CustomResponseSerializer

-(id)responseObjectForResponse:(NSURLResponse *)response data:(NSData *)data error:(NSError *__autoreleasing *)error{
    // 返回nil为失败;返回有效的对象,即成功
    return @"";
}

@end
我得到的是一堆这样的: <22555344 5553443d 58222c31 2e30302c 22382f32 302f3230 3134222c 22343a30 33616d22 0d0a2255 5344434e 593d5822 2c362e31 3434322c 22382f32 302f3230 3134222c 22343a31 36616d22 0d0a2255 5344484b 443d5822 2c372e37 3530362c 22382f32 302f3230 3134222c 22343a31 37616d22 0d0a2255 53444a50 593d5822 2c313033 2e323834 2c22382f 32302f32 30313422 2c22343a 3138616d 220d0a22 55534454 48423d58 222c3331 2e393235 2c22382f 32302f32 30313422 2c22343a 3133616d 220d0a22 55534445 55523d58 222c302e 37353139 2c22382f 32302f32 30313422 2c22343a 3136616d 220d0a22 55534447 42503d58 222c302e 36303133 2c22382f 32302f32 30313422 2c22343a 3137616d 220d0a> 是不是解析失败啊,???[/quote] 不是,这是data,你要把data转成string,比如这样: [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding][/quote] 我把data转成string后得到的是html代码: 400 Bad Request 是我的url下载地址有问题吗??
Bannings 2014-08-20
  • 打赏
  • 举报
回复
引用 6 楼 zioc2014 的回复:
[quote=引用 2 楼 zhangao0086 的回复:] 你这个请求就很简单了,请求:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [CustomResponseSerializer new];
[manager GET:@"http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDUSD=x+USDCNY=x+USDHKD=x+USDJPY=x+USDTHB=x+USDEUR=x+USDGBP=x"
  parameters:nil
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
         NSLog(@"success");
     }
     failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"failed");
     }];
用AFHTTPResponseSerializer的子类去解析:

@interface CustomResponseSerializer : AFHTTPResponseSerializer

@end

@implementation CustomResponseSerializer

-(id)responseObjectForResponse:(NSURLResponse *)response data:(NSData *)data error:(NSError *__autoreleasing *)error{
    // 返回nil为失败;返回有效的对象,即成功
    return @"";
}

@end
我得到的是一堆这样的: <22555344 5553443d 58222c31 2e30302c 22382f32 302f3230 3134222c 22343a30 33616d22 0d0a2255 5344434e 593d5822 2c362e31 3434322c 22382f32 302f3230 3134222c 22343a31 36616d22 0d0a2255 5344484b 443d5822 2c372e37 3530362c 22382f32 302f3230 3134222c 22343a31 37616d22 0d0a2255 53444a50 593d5822 2c313033 2e323834 2c22382f 32302f32 30313422 2c22343a 3138616d 220d0a22 55534454 48423d58 222c3331 2e393235 2c22382f 32302f32 30313422 2c22343a 3133616d 220d0a22 55534445 55523d58 222c302e 37353139 2c22382f 32302f32 30313422 2c22343a 3136616d 220d0a22 55534447 42503d58 222c302e 36303133 2c22382f 32302f32 30313422 2c22343a 3137616d 220d0a> 是不是解析失败啊,???[/quote] 不是,这是data,你要把data转成string,比如这样: [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]
zioc2014 2014-08-20
  • 打赏
  • 举报
回复
引用 2 楼 zhangao0086 的回复:
你这个请求就很简单了,请求:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [CustomResponseSerializer new];
[manager GET:@"http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDUSD=x+USDCNY=x+USDHKD=x+USDJPY=x+USDTHB=x+USDEUR=x+USDGBP=x"
  parameters:nil
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
         NSLog(@"success");
     }
     failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"failed");
     }];
用AFHTTPResponseSerializer的子类去解析:

@interface CustomResponseSerializer : AFHTTPResponseSerializer

@end

@implementation CustomResponseSerializer

-(id)responseObjectForResponse:(NSURLResponse *)response data:(NSData *)data error:(NSError *__autoreleasing *)error{
    // 返回nil为失败;返回有效的对象,即成功
    return @"";
}

@end
我得到的是一堆这样的: <22555344 5553443d 58222c31 2e30302c 22382f32 302f3230 3134222c 22343a30 33616d22 0d0a2255 5344434e 593d5822 2c362e31 3434322c 22382f32 302f3230 3134222c 22343a31 36616d22 0d0a2255 5344484b 443d5822 2c372e37 3530362c 22382f32 302f3230 3134222c 22343a31 37616d22 0d0a2255 53444a50 593d5822 2c313033 2e323834 2c22382f 32302f32 30313422 2c22343a 3138616d 220d0a22 55534454 48423d58 222c3331 2e393235 2c22382f 32302f32 30313422 2c22343a 3133616d 220d0a22 55534445 55523d58 222c302e 37353139 2c22382f 32302f32 30313422 2c22343a 3136616d 220d0a22 55534447 42503d58 222c302e 36303133 2c22382f 32302f32 30313422 2c22343a 3137616d 220d0a> 是不是解析失败啊,???
阮小木 2014-08-14
  • 打赏
  • 举报
回复
我用的是webservce
Bannings 2014-08-14
  • 打赏
  • 举报
回复
引用 3 楼 zioc2014 的回复:
[quote=引用 1 楼 u014609935 的回复:] 没用过 AFNetworking. 我一般用 NSURLConnection + NSOperation, 这里有相关的代码: http://bbs.csdn.net/topics/390857218
你运行一下我的api,数据是要下载的。我get获取不到东西[/quote] 你运行我给你的demo,是可以取到的,都是277字节
zioc2014 2014-08-14
  • 打赏
  • 举报
回复
引用 1 楼 u014609935 的回复:
没用过 AFNetworking. 我一般用 NSURLConnection + NSOperation, 这里有相关的代码: http://bbs.csdn.net/topics/390857218
你运行一下我的api,数据是要下载的。我get获取不到东西
Bannings 2014-08-14
  • 打赏
  • 举报
回复
你这个请求就很简单了,请求:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [CustomResponseSerializer new];
[manager GET:@"http://download.finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDUSD=x+USDCNY=x+USDHKD=x+USDJPY=x+USDTHB=x+USDEUR=x+USDGBP=x"
  parameters:nil
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
         NSLog(@"success");
     }
     failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"failed");
     }];
用AFHTTPResponseSerializer的子类去解析:

@interface CustomResponseSerializer : AFHTTPResponseSerializer

@end

@implementation CustomResponseSerializer

-(id)responseObjectForResponse:(NSURLResponse *)response data:(NSData *)data error:(NSError *__autoreleasing *)error{
    // 返回nil为失败;返回有效的对象,即成功
    return @"";
}

@end
伦敦iOS小牛 2014-08-14
  • 打赏
  • 举报
回复
没用过 AFNetworking. 我一般用 NSURLConnection + NSOperation, 这里有相关的代码: http://bbs.csdn.net/topics/390857218

29,046

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧