抱歉我的英文^^ 我知道如何从谷歌转换器工具获得货币的结果,例如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"];
}
但是当我点击我的按钮时,标签没有文字(就像它是空的)。 难道我做错了什么 ? 我想做什么可能吗? 非常感谢你的期货答案! 奥利弗。
答案 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响应。