我有一个网址,它通过"必胜客"的条目从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不会返回任何数据,因为此代码似乎无法正常工作。
我如何重新编写此字符串以便将占位符放在那里?
答案 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 - 确保正确转义搜索文本,以便正确编码特殊字符(如空格)。