添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
机灵的乌冬面  ·  创建SparkSession ...·  2 月前    · 
威武的香瓜  ·  [转]Entity Framework ...·  7 月前    · 

1、iOS请求URL中含有中文怎么办?

使用UTF-8编码一下就OK了

NSString* encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

2、iOS获取URL链接中的各个参数值:

例:http://example.com?param1=value1&param2=param2

通过对一个合法的url(第一个参数用"?“连接,且url中只有一个”?",剩下的参数用"&"连接)进行字符串分割等处理实现URL中参数的提取

//获取其中某个参数
- (NSString *)getParamByName:(NSString *)name URLString:(NSString *)url{
    NSError *error;
    NSString *regTags=[[NSString alloc] initWithFormat:@"(^|&|\\?)+%@=+([^&]*)(&|$)", name];
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regTags
                                                                           options:NSRegularExpressionCaseInsensitive
                                                                             error:&error];
    // 执行匹配的过程
    NSArray *matches = [regex matchesInString:url
                                      options:0
                                        range:NSMakeRange(0, [url length])];
    for (NSTextCheckingResult *match in matches) {
        NSString *tagValue = [url substringWithRange:[match rangeAtIndex:2]];  // 分组2所对应的串
        return tagValue;
    return @"";
NSString *URLStr = @"http://example.com?param1=value1&param2=param2";
NSLog(@"结果:",[self getParamByName:@"param1" URLString:URLStr])
结果:value1

2、一次性获取所有参数:

- (NSDictionary *)getParamsWithUrlString:(NSString*)urlString { if(urlString.length==0) { NSLog(@"链接为空!"); return @{}; //先截取问号 NSArray* allElements = [urlString componentsSeparatedByString:@"?"]; NSMutableDictionary* params = [NSMutableDictionary dictionary];//待set的参数字典 if(allElements.count == 2) { //有参数或者?后面为空 NSString* paramsString = allElements[1]; //获取参数对 NSArray*paramsArray = [paramsString componentsSeparatedByString:@"&"]; if(paramsArray.count>=2) { for(NSInteger i =0; i < paramsArray.count; i++) { NSString* singleParamString = paramsArray[i]; NSArray* singleParamSet = [singleParamString componentsSeparatedByString:@"="]; if(singleParamSet.count==2) { NSString* key = singleParamSet[0]; NSString* value = singleParamSet[1]; if(key.length>0|| value.length>0) { [params setObject: value.length>0? value:@"" forKey:key.length>0?key:@""]; }else if(paramsArray.count == 1) {//无 &。url只有?后一个参数 NSString* singleParamString = paramsArray[0]; NSArray* singleParamSet = [singleParamString componentsSeparatedByString:@"="]; if(singleParamSet.count==2) { NSString* key = singleParamSet[0]; NSString* value = singleParamSet[1]; if(key.length>0 || value.length>0) { [params setObject:value.length>0?value:@""forKey:key.length>0?key:@""]; }else{ //问号后面啥也没有 xxxx? 无需处理 //整合url及参数 return params; }else if(allElements.count>2) { NSLog(@"链接不合法!链接包含多个\"?\""); return @{}; }else{ NSLog(@"链接不包含参数!"); return @{};
	NSString *url = @"https://www.jd.com/?device=app&appVersion=1.0.7&platform=iOS";
	NSDictionary *dict = [self getParamsWithUrlString:url];
	NSLog(@"结果:%@",dict);
	结果:{
        appVersion = "1.0.7";
        device = app;
        platform = iOS;
                    1、iOS请求URL中含有中文怎么办?使用UTF-8编码一下就OK了NSString* encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];2、iOS获取URL链接中的各个参数值:例:http://example.com?param1=value1&amp;param2=param2通过对一个合法的url(第一个参数用"?“连接,且url中只有一个”?",剩下的参数用
				
- (NSString *)getParamByName:(NSString *)name URLString:(NSString *)url NSError *error; NSString *regTags=[[NSString alloc] initWithFormat:@"(^|&|\\?)+%@=+([^&]*)(&|$)"...
iOS 开发学习笔记 (1)如何解析url的数据url是统一的资源定位符,是资源的地址,可以通过url获得相应的资源。同样在url字符串也包含了很多数据,在iOS开发苹果也提供了一些接口对如url的这些数据进行解析。一、获得url的域名和服务器名NSString *host= [url host]; NSLog(@&quot;%@&quot;,host);二、获得url参数NSString *query
2 * initWithContentsOfFile:从文件获取内容 3 * initWithContentsOfURL:从URL获取内容 4 * writeToFile:写入文件 5 * atomically:原子性(文件写入的时候不会断,在执行完毕之前不会被任何其它任务或事件断。) 6 */ 7 #i... NSString *urlString = @"http://www.baidu.com:8080/share?username=zhouyu&amp;password=12345&amp;sex=男"; NSURLComponents *urlComponents = [[NSURLComponents al... 什么是通用链接? 通用链接iOS9推出的一项新功能,如果你的应用(app)支持通用链接(Universal Link)之后,iOS用户能够在点击网页的链接的时候无缝的重定向到已经安装的app,不需要额外的任何操作。如果没有安装对应的app,那么点击链接会使用Safari打开网页。在iOS9以前,对于各种浏览器,Safari唤醒app的需求,我们通常是只能使用scheme的方式。 为什么要突然改用通用链接的配置方式? 我们的项目唤起第三方ap [编辑].h文件 @property (strong,nonatomic)UIWebView *webView; @property (strong,nonatomic)NSString *currentURL; @property (strong,nonatomic)NSString *currentTitle; -(NSDictionary *) parameterWithURL:(NSURL *) url { NSMutableDictionary *parm = [[NSMutableDictionary alloc]init]; //传入url创建...
iOS 的右滑返回是必不可少的一项功能,否则用户体验会大打折扣,但是会经常会碰到某些页面右滑返回失效的情况,下面记录一下解决各种情况下右滑返回失效的方法: 1. 自定义返回按钮 如果页面上是自定义的返回按钮,那在viewDidLoad加上下面这句话就可以: - (void)viewDidLoad { [super viewDidLoad]; self.navigationCont...
```swift if let url = URL(string: "https://www.example.com?name=John&age=30") { if let components = URLComponents(url: url, resolvingAgainstBaseURL: true) { if let name = components.queryItems?.first(where: { $0.name == "name" })?.value { print(name) // Output: John if let age = components.queryItems?.first(where: { $0.name == "age" })?.value { print(age) // Output: 30 在这个例子,我们首先创建一个URL对象,然后使用URLComponents类解析URL。我们可以通过查询URLComponents的queryItems属性来获取HTML参数。在这个例子,我们使用first(where:)方法和一个闭包来获取名为“name”和“age”的参数的值。