ios 从URL中截取所包含的参数,并且以字典的形式返回和参数字典转URL
2024-08-29 11:49:28
//字典转链接(参数) - (NSString *)keyValueStringWithDict:(NSDictionary *)dict
{
if (dict == nil) {
return nil;
}
NSMutableString *string = [NSMutableString stringWithString:@"?"];
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
[string appendFormat:@"%@=%@&",key,obj];
}]; if ([string rangeOfString:@"&"].length) {
[string deleteCharactersInRange:NSMakeRange(string.length - , )];
} return string;
} //链接转字典 (参数)
-(NSDictionary *)dictionaryWithUrlString:(NSString *)urlStr
{
if (urlStr && urlStr.length && [urlStr rangeOfString:@"?"].length == ) {
NSArray *array = [urlStr componentsSeparatedByString:@"?"];
if (array && array.count == ) {
NSString *paramsStr = array[];
if (paramsStr.length) {
NSMutableDictionary *paramsDict = [NSMutableDictionary dictionary];
NSArray *paramArray = [paramsStr componentsSeparatedByString:@"&"];
for (NSString *param in paramArray) {
if (param && param.length) {
NSArray *parArr = [param componentsSeparatedByString:@"="];
if (parArr.count == ) {
[paramsDict setObject:parArr[] forKey:parArr[]];
}
}
}
return paramsDict;
}else{
return nil;
}
}else{
return nil;
}
}else{
return nil;
}
}
//特殊链接解析不了 。 'https://wwww.baidu.com/#/sdffff?name=sdfff&pass=dddff'
/**
获取url的所有参数
@param url 需要提取参数的url
@return NSDictionary
*/
-(NSDictionary *) parameterWithURL:(NSURL *) url { NSMutableDictionary *parm = [[NSMutableDictionary alloc]init]; //传入url创建url组件类
NSURLComponents *urlComponents = [[NSURLComponents alloc] initWithString:url.absoluteString]; //回调遍历所有参数,添加入字典
[urlComponents.queryItems enumerateObjectsUsingBlock:^(NSURLQueryItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[parm setObject:obj.value forKey:obj.name];
}]; return parm;
}
最新文章
- 浮点数 (IEEE-754)
- SQL知识整理二:锁、游标、索引
- python pexpect 学习与探索
- bootstrap-datepicker的使用
- Eclipse的java代码出错:The import org.apache cannot be resolved
- UML-用例
- ViewFilpper
- HDU 4741 Save Labman No.004 2013 ACM/ICPC 杭州网络赛
- 《Python爬虫学习系列教程》学习笔记
- CodeForces 662D International Olympiad
- 一个web应用的诞生(11)--在探首页
- python 最佳实践与资源汇总
- JAVA异步加回调的例子
- Tarjan求LCA
- C# 利用ReportViewer生成报表
- 第十三节,卷积神经网络之经典网络LeNet-5、AlexNet、VGG-16、ResNet(三)(后面附有一些网络英文翻译文章链接)
- windows Tomcat apr安装
- 自带hyper -v 或者 Vmware安装Linux centos
- 简明python教程 --C++程序员的视角(五):面向对象的编程
- java中需要用equals来判断两个字符串值是否相等