我尝试使用的API提供了一个HTTP Url请求,它为开发人员提供了可以调用API的功能。
此网址存在的问题是它包含太多" %"标志,因此我得到这个警告:
更多" %"转换比数据参数。
以下是我使用URL创建NSString实例的代码:
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&appId=MY_APP_ID&appKey=MY_APP_KEY", searchText];
答案 0 :(得分:0)
问题是,NSString中有UTF-8代码。 (那些0%3A20 ......)
处理这个的正确方法是......
以下是您在编码之前的网址
NSString *urlString = [NSString stringWithFormat:@"https://api.nutritionix.com/v1_1/search/%@?results=0:20&cal_min=0&cal_max=50000&fields=item_name,brand_name&appId=MY_APP_ID&appKey=MY_APP_KEY", searchText];
之后对字符串进行编码
NSLog(@"encodedString : %@", [urlString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
如果您有任何问题,请随时提出跟进问题。干杯!
答案 1 :(得分:0)
你可以试试这个
NSURL * url=[NSURL URLWithString:@"your_url"]
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[url standardizedURL]];
[request setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
希望有所帮助
答案 2 :(得分:0)
请试试这个...... make suru之间不应该有%符号,或者你必须为每个格式说明符都有参数..
NSString * urlString = [NSString stringWithFormat:@“https://api.nutritionix.com/v1_1/search/%@?results=03A20&cal_min=0&cal_max=50000&fields=item_name,brand_name&appId=MY_APP_ID&appKey=MY_APP_KEY”,searchText];