2011-04-12 7 views
1

私の英語のために申し訳ありません^^ 私は通貨のためにgoogle converter toolから結果を得る方法を知っています。例えば、http://www.google.com/finance/converter?a=1&from=USD&to=GBPにあります。 (それが空であるように、それはある)Iphone dev:Google通貨コンバータからどのように結果を得ることができますか?

-(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"]; 
} 

をしかし、私は私のボタンをクリックすると、ラベルはテキストを持っていません。

私はすでにそのような何かを試してみました。 何か間違っていますか? 私は何をしたいのですか? お返事ありがとうございます。 Olivier。

+4

これは完全なHTMLページを返します。このページでは、googleコンバーターAPIの使用例をご覧ください:http://oohhyeah.blogspot.com/2009/01/google-currency-conversion-api.html – rckoenes

+0

あなたの返信をNSに返信してください。それがNSStringかどうかを確認してください。 – visakh7

答えて

1

うん...それは可能です... は、あなたが取得しているデータは、HTMLファイルであるか、XMLとして処理することができます参照してください。そのXMLファイルを解析して結果を取得するだけです。そこ物事の多くは、そのファイルにイアが、あなただけ

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

を抽出する必要がありますねえ。このURLはJSON

{LHS戻ります http://www.google.com/ig/calculator?hl=en&q=1USD=?INR

このURLを試してみてください: "1米ドルを"、 rhs: "44.5097254インドルピー"、エラー: ""、icc:true}

これを解析するだけです。 :)

+0

ありがとうございました! –

+0

しかし、簡単な方法がありますか?あなたはそれが欲しいですか??? –

0

試してみてください...

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

その後、あなたはいっその応答の中で何か

NSLog(@"%@", response); 

を持って確認したNSDataのはalloc/initのを削除

と交換

NSData *data=[NSData dataWithContentsOfURL:myURL]; 

そして、結果を解析する必要があります。期待した結果を得ることができないからです。レスポンスにはHTMLページが含まれます。

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"]; 

} 
 
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応答を提供しています。

関連する問題