Iphone开发:我如何从谷歌货币转换器获得结果?

时间:2011-04-12 09:02:26

标签: iphone currency converter

抱歉我的英文^^ 我知道如何从谷歌转换器工具获得货币的结果,例如http://www.google.com/finance/converter?a=1&from=USD&to=GBP上提供。

我已经尝试过类似的东西了:

    -(IBAction)getResponse:(id) sender{

     NSString *myURLString = @"http://www.google.com/finance/converter?a=1&from=USD&to=GBP";

     NSURL *myURL =  [NSURL URLWithString: myURLString];

     NSData *data = [NSData alloc];

     data=[NSData dataWithContentsOfURL:myURL];


     if(data!=nil && data != ""){

          NSString *response = [[[NSString alloc] initWithData:data]]

          [label setText: response];

     }

     else [label setText:@"not working"];
}

但是当我点击我的按钮时,标签没有文字(就像它是空的)。 难道我做错了什么 ? 我想做什么可能吗? 非常感谢你的期货答案! 奥利弗。

4 个答案:

答案 0 :(得分:1)

是的..有可能...... 查看您获得的数据是HTML文件,还是可以视为xml。只需解析该xml文件并获取结果。该文件中有很多东西,但你必须只提取

<div id=currency_converter_result>1 USD = <span class=bld>0.6118 GBP</span> 

嘿试试这个网址 http://www.google.com/ig/calculator?hl=en&q=1USD=?INR

此URL将返回JSON

{lhs:“1美元”,rhs:“44.5097254印度卢比”,错误:“”,icc:true}

解析它。 :)

答案 1 :(得分:0)

...试

  

NSData * data = [[NSData alloc] init];

然后检查你是否有回应

NSLog(@"%@", response);

更好的是,删除NSData alloc / init

替换为

NSData *data=[NSData dataWithContentsOfURL:myURL];

而且,你需要解析返回的结果,因为你不会得到你期望的结果。响应将包含HTML页面。

答案 2 :(得分:0)

您最好使用异步请求来避免阻止您的应用。轻松使用ASIHTTPRequest


- (IBAction)grabURLInBackground:(id)sender
{
   NSURL *url = [NSURL URLWithString:@"http://www.google.com/finance/converter?a=1&from=USD&to=GBP"];
   ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
   [request setDelegate:self];
   [request startAsynchronous];
}


- (void)requestFinished:(ASIHTTPRequest *)request
{
   // Use when fetching text data
   NSString *responseString = [request responseString];



   [label setText: responseString];

}

- (void)requestFailed:(ASIHTTPRequest *)request
{
   NSError *error = [request error]; //you can log the error description

   [label setText:@"not working"];

}

答案 3 :(得分:0)

NSString *myURLString = @"http://www.google.com/finance/converter?a=1&from=USD&to=GBP";

NSURL *myURL =  [NSURL URLWithString: myURLString];

NSData *data = [NSData alloc];

data=[NSData dataWithContentsOfURL:myURL];


if(data!=nil){

    NSString *response = [[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];

    NSLog(@"%@",response);
}

试试这个。 此API提供HTML响应。