我无法在网址中发送带阿拉伯字母的请求

时间:2011-10-10 11:07:02

标签: objective-c ios json url

我正在开发一款利用Google搜索API并搜索阿拉伯语内容的iPhone应用程序。

每当我在URL中发送包含阿拉伯字母的请求以获取JSON文件格式时,我都会收到错误消息,表明请求已失败。这就是请求的样子:

https://www.googleapis.com/customsearch/v1?oe=utf-8&ie= ISO-8859-6&key=[MY KEY]&cx=013036536707430787589:_pqjad5hr1a&q=جوجل&alt=json

这是我的代码中调用请求并检索数据的方法:

NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.googleapis.com/customsearch/v1?oe=utf-8&ie= ISO-8859-6&key=[MY KEY]&cx=013036536707430787589:_pqjad5hr1a&q=جوجل&alt=json"]] delegate:self];

1 个答案:

答案 0 :(得分:6)

您必须在URL中使用百分比编码才能使工作正常,因为您不能只传递URL中的任意字符串。有关详细信息,请参阅this question。基本上,它归结为通过stringByAddingPercentEscapesUsingEncoding:方法运行字符串。由于此方法仅支持UTF-8编码,因此您还必须在网址中传递ie=utf-8而不是ie=ISO-8859-6