尝试使用HTTP URL请求和解析JSON

时间:2015-04-11 17:14:34

标签: ios objective-c json

我尝试使用的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];

3 个答案:

答案 0 :(得分:0)

问题是,NSString中有UTF-8代码。 (那些0%3A20 ......)

处理这个的正确方法是......

  1. 以下是您在编码之前的网址

    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];
    
  2. 之后对字符串进行编码

    NSLog(@"encodedString : %@", [urlString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
    
  3. 如果您有任何问题,请随时提出跟进问题。干杯!

答案 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];