8000 GitHub - zhengwu119/HTTPDNSLib
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

zhengwu119/HTTPDNSLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

HTTPDNSLib

DNSCache库使用说明书 感谢新浪研发中心技术保障部移动端保障团队。 源码链接:https://github.com/SinaMSRE/HTTPDNSLib-for-iOS.git

此项目修改自微博的HTTPDNS源码. 主要更换HTTPDNS服务为DNSPOD企业版~。去掉自动上传LOG,和Config下载。 保留原有的Cache,DB,ip择优等核心业务。

相关机制链接:

http://www.360doc.com/content/15/1016/07/2909773_505968464.shtml

安装:

pod 'HTTPDNSLib', :git => 'https://github.com/zhengwu119/HTTPDNSLib.git'

在AppDelegate里(也就是尽可能早的时候)初始化 WBDNSCache库。

[WBDNSCache setAppID:@"DNSPOD_ID" appkey:@"DNSPOD_KEY"];

初始化库,期间会从参数服务器请求配置参数 [[WBDNSCache sharedInstance] initialize];

建议初始化后延时调用 预请求域名对应IP,提前从服务器拉取域名对应IP [[WBDNSCache sharedInstance]preloadDomains:@[@"http://www.baidu.com", @"http://api.weibo.cn/"]];

然后就可以在任何地方调用 [[WBDNSCache sharedInstance] getDomainServerIpFromURL:url] 获取转换后Url 和 需要设置的host值。 这个函数拿到的是一个WBDNSDomainInfo 对象数组,一般来说 取第一个就可以了。 WBDNSDomainInfo.id 暂时没用。 WBDNSDomainInfo.url 已经替换好的URL, 客户端可以直接用它 请求资源。 WBDNSDomainInfo.host 客户端需要将这个host设置到HTTP的请求头里。 如果Host为@“” 代表不需要设置Host 以AFNetworking举例 [manager.requestSerializer setValue:WBDNSDomainInfo.host forHTTPHeaderField:@"Host"];

!已解决在网络丢包严重时阻塞主线程 #依赖 YYDispatchQueuePool:https://github.com/ibireme/YYDispatchQueuePool

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0