NSUrl/NSUrlComponents

可以参考这个
新接手的项目与原来的项目在请求接口的业务区分上有差别,原负责项目的接口区分业务都是用接口中的某个参数暂且叫他busnessName区分的,接收新项目后发现这个项目区分业务是用接口的path路径区分的,本想着原来的网络框架可拿过来直接使用呢,结果出个这,此时NSUrl/NSUrlComponents的用武之地就到了

接口的组成:

<scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]
nsurl.png

NSUrl操作

let baseURL = NSURL(string: "http://example.com/v1/")

NSURL(string: "foo", relativeToURL: baseURL)
// http://example.com/v1/foo

NSURL(string:"foo?bar=baz", relativeToURL: baseURL)
// http://example.com/v1/foo?bar=baz

NSURL(string:"/foo", relativeToURL: baseURL)
// http://example.com/foo

NSURL(string:"foo/", relativeToURL: baseURL)
// http://example.com/v1/foo/

NSURL(string:"/foo/", relativeToURL: baseURL)
// http://example.com/foo/

NSURL(string:"http://example2.com/", relativeToURL: baseURL)
// http://example2.com/

NSUrlComponents属性,可对照上图

scheme
user
password
host
port
path
query
fragment

对于我的需求是换完整接口的路径path,此处只需在合成完整链接时添加一步替换path即可

NSURLComponents *url = [NSURLComponents componentsWithString:@"http://3g.fang.com.cn/index/path/interFace?date=all&name=beijing"];
  url.path = @"/haha/dudu/dede";
  NSLog(@"=====%@",url);
  NSLog(@"++++++++++%@",url.string);//获取完整的替换后的链接

完成。

同时也有对个属性的编码输出

percentEncodedUser
percentEncodedPassword
percentEncodedHost
percentEncodedPath
percentEncodedQuery
percentEncodedFragment

暂时没用到在这里记录一下

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,691评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,754评论 4 61
  • 说好去远方, 你还在原地。 那是不是你的愿意, 又是不是远方的回音。 这一切,我无从说起, 对你,永远只有三个字,...
    小剧在成长阅读 1,324评论 0 8
  • 你或许知道复利效应。 它可以缩减成这样一个数式(1+r)^n,如果应用在个人的成长上,可以理解为,其中的1是你的起...
    1990年12月15号阅读 2,844评论 0 0

友情链接更多精彩内容