首页
社区
课程
招聘
[原创]uriScheme类实现的简单版本[URI资料解析类]。
发表于: 2013-10-6 13:02 7983

[原创]uriScheme类实现的简单版本[URI资料解析类]。

2013-10-6 13:02
7983

上午发了一篇文章讲解解析URL小技巧,但aqtata大侠发了一个标准文档出来,于是根据标准文档编写代码,花了几个小时,写了一个简单版本的uri Scheme,接下来请看代码。
原文地址:http://bbs.pediy.com/showthread.php?t=179681
PS:只负责解析标准的HTTPS、HTTP链接,其他的链接如果崩溃了一律不负责。

void testScheme() {
	Scheme::uriScheme* uri = new Scheme::uriScheme("foo://example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose");
	printf("%s\r\n", uri->getSchemeName());
	printf("%s\r\n", uri->getHostName());
	printf("%s\r\n", uri->getHostPort());
	printf("%s\r\n", uri->getInfoPath());
	printf("%s\r\n", uri->getQueueInfo());
	printf("%s\r\n", uri->getFragment());
	delete uri;
补充一下:
以上依次输出:foo、example.com、8042(如果没有端口默认80、443,这是标准的端口)、/over/there/index.dtb、type=animal&name=narwhal、nose
}

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 5
支持
分享
最新回复 (6)
雪    币: 85
活跃值: (124)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
可以见得楼主是个很牛的程序猿——这么快就写了这个玩意。
感谢楼主,东西不错。先收藏。

不知xxxxxxxx.h是什么……
2013-10-6 13:17
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
3
自己的头文件,没必要发上来吧,自己把标准的C库添加上去就成了。
2013-10-6 13:18
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
4
123456
2013-10-6 23:45
0
雪    币: 357
活跃值: (4508)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
5
重复单词uriScheme, uriSchemeConst 太多
if,else,for 也多,有点乱
在循环末尾用了continue,没必要
2013-10-7 00:50
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不错哟
不过你没考虑不带协议头的路径哟
如果测试example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose
输出会变成神马?
反斜杠的也没处理,测试example.com:8042\over\there\index.dtb?type=animal&name=narwhal#nose
看看输出又是神马...

就算不用Windows,其他平台也有各种字符串查找,取left,mid,right函数吧,楼主好好的函数不用,然后非得一个个字符匹配,结果还丢这丢那的...
2013-10-7 10:02
0
雪    币: 240
活跃值: (190)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
多线程同时调用
看看输出又是神马
2013-10-7 12:00
0
游客
登录 | 注册 方可回帖
返回