将NSString转换为NSURL
这是我的代码,但我收到了空结果
NSString *Mystr = [NSString stringWithFormat:@"http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in (\"USDEUR\")&env=store://datatables.org/alltableswithkeys"];
NSURL *URLOne = [[NSURL alloc] initWithString:[Mystr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
NSError *error1;
NSString *strresult = [NSString stringWithContentsOfURL:URLOne
encoding:NSASCIIStringEncoding
error:&error1];
NSLog(@"%@", strresult);
这是我的错误
错误Domain = NSCocoaErrorDomain Code = 256“无法打开文件”yql“。”的UserInfo = {NSURL=http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDEUR%22)&env=store://datatables.org/alltableswithkeys}
答案 0 :(得分:0)
没有特别的顺序:
stringWithContentsOfURL
方法不旨在用于获取网络网址。您应该使用 NSURLSession API。http%3A%2F%2F
.... 这不是编码URL查询字符串数据的好方法。除此之外,它不会编码一堆在查询字符串中技术上合法的特殊字符,但这可能导致错误行为(例如等号和符号)。相反,这样做:
NSString *qParameterEncoded =
(__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(__bridge CFStringRef)qParameter,
NULL,
CFSTR(":/?#[]@!$&'()*+,;="),
kCFStringEncodingUTF8);
或使用stringByAddingPercentEncodingWithAllowedCharacters:
和自定义NSCharacterSet
执行等效操作。