在URL字符串中使用占位符

时间:2015-05-07 03:12:06

标签: objective-c asp.net-web-api

我有一个网址,它通过"必胜客"的条目从Web API中检索数据:

@Override  
public String getphone(long name,String address){ 
     List<EntityABC> entityList = getHibernateTemplate().find("from Table where name=" + name+"AND address='" + address+"'");

if(null!=entityList && entityList.size() >0){
     return phoneNumberList.get(0).getPhone();
}

return null;
}

此网址将返回必胜客的所有菜单项。

现在我想超越硬编码值,所以我创建了一个文本框,用户可以进入自己的餐厅,web api应该返回数据。

以下是一个例子:

NSString *urlString = @"https://api.nutritionix.com/v1_1/search/Pizza  Hut?results=0%3A20&cal_min=0&cal_max=50000&fields=item_name%2Cbrand_name%2Citem_id%2Cbrand_id&appId=MY_APP_ID&appKey=MY_APP_KEY";

我在这里所做的就是改变&#34;必胜客&#34;到&#34;%@&#34;。

但是,我收到编译器的警告:

&#34;更多&#39;%&#39;转换比数据参数。正如您所料,API不会返回任何数据,因为此代码似乎无法正常工作。

我如何重新编写此字符串以便将占位符放在那里?

1 个答案:

答案 0 :(得分:1)

您还有其他需要正确转义的百分号。你想要:

NSString *urlString = [NSString stringWithFormat:@"https://api.nutritionix.com/v1_1/search/%@?results=0%%3A20&cal_min=0&cal_max=50000&fields=item_name%%2Cbrand_name%%2Citem_id%%2Cbrand_id&appId=MY_APP_ID&appKey=MY_APP_KEY", searchText.text];

基本上,在您希望出现在字符串中的所有%符号之前添加第二个%符号。

BTW - 确保正确转义搜索文本,以便正确编码特殊字符(如空格)。

相关问题