2012-12-31 20 views
2

两个词,我试图做一个叫喊查询并使用OAuth库无效的签名,同时通过在Yelp的URL

下面是代码

NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://api.yelp.com/v2/search?term=petrol+restaurants&ll=%f,%f&radius_filter=300",coordinate.latitude,coordinate.longitude]]; 

    OAConsumer *consumer = [[OAConsumer alloc] initWithKey:consumerKey secret:consumerSecret]; 
    OAToken *token = [[OAToken alloc] initWithKey:tokenUrl secret:tokenSecret]; 

    id<OASignatureProviding, NSObject> provider = [[OAHMAC_SHA1SignatureProvider alloc] init]; 
    NSString *realm = nil; 

    OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:URL 
                   consumer:consumer 
                    token:token 
                    realm:realm 
                 signatureProvider:provider]; 
    [request prepare]; 

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
    connection = nil; 

代码工作完美的,如果查询有一个期限, term=petrol eg但是,如果我添加两个词,如term=petrol+fuel,它开始给我错误{"error": {"text": "Signature was invalid", "id": "INVALID_SIGNATURE", "description": "Invalid signature

这段代码有什么问题?

示例API请求

http://api.yelp.com/v2/search?term=cream+puffs&location=San+Francisco 

它包含一个+,但是当我使用+它给我上面的错误

+0

你的代码是罚款,去yelp API文档,看看那里如何在单个查询中使用多个参数,看看它是否可能,希望这会帮助你 – Talha

+0

@Talha这是一个SAMple请求在文档http://api.yelp.com/v2/search?term = cream + puffs&location = San + Francisco –

+0

根据您的示例请求,在我看来,请求罚款时,像奶油泡芙是一个食品名称,因此它是写在请求奶油+泡芙(+)加号表明这是一个单词而你的字汽油+燃料是不是一个单词这些是两个不同的术语,你可以做到这一点汽油+泵或燃料+站等,希望这可能会帮助你 – Talha

回答

0

我编码字符串以UTF8编码,现在运作良好

+0

你能发布你的工作代码的例子吗?我无法让我工作。 –