版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2018.02.07 |
前言
CFNetwork框架訪問網(wǎng)絡(luò)服務(wù)并處理網(wǎng)絡(luò)配置的變化兵怯。 建立在網(wǎng)絡(luò)協(xié)議抽象的基礎(chǔ)上,可以簡化諸如使用BSD套接字腔剂,管理HTTP和FTP服務(wù)器以及管理Bonjour服務(wù)等任務(wù)媒区。接下來幾篇我們就一起看一下這個框架。
Overview
下面先看一下該框架的基本信息掸犬。
下面看一下該框架的基本結(jié)構(gòu)袜漩。
Topics
1. Errors
-
- 此枚舉包含在錯誤域 kCFErrorDomainCFNetwork下返回的錯誤代碼栏尚。
-
- 可能在
CFErrorRef
對象的userInfo
字典中提供的網(wǎng)絡(luò)相關(guān)密鑰冤灾。
- 可能在
-
- 高級錯誤域。
2. Hosts
-
- 表示
CFHost
對象的不透明引用恨诱。
- 表示
-
- 指示要解析的數(shù)據(jù)類型的值或解析的數(shù)據(jù)類型胜茧。
-
- 包含用戶定義的
CFHost
對象數(shù)據(jù)和回調(diào)的結(jié)構(gòu)。
- 包含用戶定義的
-
- 取消host的分辨率。
-
- 通過復(fù)制創(chuàng)建一個新的主機(jī)對象呻顽。
-
- 使用地址來創(chuàng)建主機(jī)對象的實例雹顺。
-
- 使用名稱來創(chuàng)建主機(jī)對象的實例。
-
- 從主機(jī)獲取地址廊遍。
-
- 從CFHost獲取名稱嬉愧。
-
- 從主機(jī)獲取可達(dá)性信息。
-
- 獲取CFHost不透明類型的Core Foundation類型標(biāo)識符喉前。
-
- 在運行循環(huán)上安排一個CFHost没酣。
-
- 將客戶端上下文和回調(diào)函數(shù)與
CFHost
對象關(guān)聯(lián)起來,或者解除先前設(shè)置的客戶端上下文和回調(diào)函數(shù)的關(guān)聯(lián)卵迂。
- 將客戶端上下文和回調(diào)函數(shù)與
-
- 開始解析主機(jī)對象裕便。
-
- 從運行循環(huán)中取消調(diào)度
CFHost
。
- 從運行循環(huán)中取消調(diào)度
3. Global Proxy Configuration
-
- 返回應(yīng)該用于下載給定URL的代理列表见咒。
-
CFNetworkCopyProxiesForAutoConfigurationScript
- 執(zhí)行代理自動配置腳本以確定用于檢索指定URL的最佳代理偿衰。
-
CFNetworkExecuteProxyAutoConfigurationScript
- 下載代理自動配置腳本并執(zhí)行它。
-
CFNetworkExecuteProxyAutoConfigurationURL
- 下載代理自動配置腳本并執(zhí)行它改览。
-
CFNetworkCopySystemProxySettings
- 返回包含當(dāng)前系統(tǒng)互聯(lián)網(wǎng)代理設(shè)置的
CFDictionary
下翎。
- 返回包含當(dāng)前系統(tǒng)互聯(lián)網(wǎng)代理設(shè)置的
-
CFProxyAutoConfigurationResultCallback
- 代理自動配置計算完成時調(diào)用的回調(diào)函數(shù)。
-
- 調(diào)用屬性
get/set
函數(shù)的鍵宝当,如 CFReadStreamSetProperty
和CFReadStreamCopyProperty视事。
- 調(diào)用屬性
-
- 指定代理類型的常量。
-
Global Proxy Settings Constants
- CFNetworkCopySystemProxySettings返回的全局代理設(shè)置字典中的鍵的常量庆揩。
4. HTTP Authentication
-
- 表示HTTP認(rèn)證信息的不透明引用俐东。
-
CFHTTPAuthenticationAppliesToRequest
- 返回一個布爾值,該值指示
CFHTTPAuthentication
對象是否與CFHTTPMessage
對象關(guān)聯(lián)盾鳞。
- 返回一個布爾值,該值指示
-
CFHTTPAuthenticationCopyDomains
- 返回可以應(yīng)用給定
CFHTTPAuthentication
對象的域URL數(shù)組犬性。
- 返回可以應(yīng)用給定
-
CFHTTPAuthenticationCopyMethod
- 獲取將
CFHTTPAuthentication
對象應(yīng)用于請求時將使用的最強(qiáng)的身份驗證方法。
- 獲取將
-
- 獲取認(rèn)證信息的名稱空間腾仅。
-
CFHTTPAuthenticationCreateFromResponse
- 使用身份驗證失敗響應(yīng)來創(chuàng)建
CFHTTPAuthentication
對象乒裆。
- 使用身份驗證失敗響應(yīng)來創(chuàng)建
-
- 獲取
CFHTTPAuthentication
不透明類型的Core Foundation類型標(biāo)識符。
- 獲取
-
- 返回一個布爾值推励,該值指示
CFHTTPAuthentication
對象是否有效鹤耍。
- 返回一個布爾值推励,該值指示
-
CFHTTPAuthenticationRequiresAccountDomain
- 返回一個布爾值,該值指示
CFHTTPAuthentication
對象是否使用需要帳戶域的身份驗證方法验辞。
- 返回一個布爾值,該值指示
-
CFHTTPAuthenticationRequiresOrderedRequests
- 返回一個布爾值稿黄,該值指示是否應(yīng)一次一個驗證請求。
-
CFHTTPAuthenticationRequiresUserNameAndPassword
- 返回一個布爾值跌造,該值指示
CFHTTPAuthentication
對象是否使用需要用戶名和密碼的身份驗證方法杆怕。
- 返回一個布爾值跌造,該值指示
-
kCFHTTPAuthenticationAccountDomain
- 帳戶域用于身份驗證族购。
-
- 用于身份驗證的密碼。
-
kCFHTTPAuthenticationSchemeBasic
- 請求HTTP基本認(rèn)證方案陵珍。
-
kCFHTTPAuthenticationSchemeDigest
- 請求HTTP摘要認(rèn)證方案寝杖。
-
kCFHTTPAuthenticationSchemeKerberos
- 請求HTTP Kerberos認(rèn)證方案。
-
kCFHTTPAuthenticationSchemeNTLM
- 請求HTTP NTLM認(rèn)證方案互纯。
-
kCFHTTPAuthenticationSchemeNegotiate
- 請求HTTP協(xié)商認(rèn)證方案瑟幕。
-
kCFHTTPAuthenticationSchemeNegotiate2
- 請求HTTP協(xié)商v2認(rèn)證方案。
-
kCFHTTPAuthenticationSchemeOAuth1
- 請求HTTP OAuth 1.0身份驗證方案留潦。
-
kCFHTTPAuthenticationSchemeXMobileMeAuthToken
- 請求HTTP
XMobileMeAuthToken
認(rèn)證方案只盹。
- 請求HTTP
-
- 用于身份驗證的用戶名。
5. HTTP Messages
-
- 表示HTTP消息的不透明引用兔院。
-
CFHTTPMessageAddAuthentication
- 將認(rèn)證信息添加到請求殖卑。
-
- 將數(shù)據(jù)附加到
CFHTTPMessage
對象。
- 將數(shù)據(jù)附加到
-
CFHTTPMessageApplyCredentialDictionary
- 使用包含認(rèn)證憑證的字典來執(zhí)行由
CFHTTPAuthentication
對象指定的認(rèn)證方法秆乳。
- 使用包含認(rèn)證憑證的字典來執(zhí)行由
-
- 執(zhí)行由
CFHTTPAuthentication
對象指定的身份驗證方法懦鼠。
- 執(zhí)行由
-
CFHTTPMessageCopyAllHeaderFields
- 從
CFHTTPMessage
對象獲取所有頭字段。
- 從
-
- 從
CFHTTPMessage
對象獲取正文屹堰。
- 從
-
CFHTTPMessageCopyHeaderFieldValue
- 從
CFHTTPMessage
對象獲取頭字段的值肛冶。
- 從
-
CFHTTPMessageCopyRequestMethod
- 從
CFHTTPMessage
對象獲取請求方法。
- 從
-
- 從
CFHTTPMessage
對象獲取URL扯键。
- 從
-
CFHTTPMessageCopyResponseStatusLine
- 從
CFHTTPMessage
對象獲取狀態(tài)行睦袖。
- 從
-
CFHTTPMessageCopySerializedMessage
- 序列化一個
CFHTTPMessage
對象。
- 序列化一個
-
- 從
CFHTTPMessage
對象獲取HTTP版本荣刑。
- 從
-
- 獲取一個
CFHTTPMessage
對象的副本馅笙。
- 獲取一個
-
- 獲取一個
CFHTTPMessage
對象的副本。
- 獲取一個
-
- 創(chuàng)建并返回一個新的空的
CFHTTPMessage
對象厉亏。
- 創(chuàng)建并返回一個新的空的
-
- 創(chuàng)建并返回一個HTTP請求的
CFHTTPMessage
對象董习。
- 創(chuàng)建并返回一個HTTP請求的
-
CFHTTPMessageGetResponseStatusCode
- 為HTTP響應(yīng)創(chuàng)建并返回一個
CFHTTPMessage
對象。
- 為HTTP響應(yīng)創(chuàng)建并返回一個
-
- 返回
CFHTTPMessage
opaque類型的Core Foundation類型標(biāo)識符皿淋。
- 返回
-
- 確定消息頭是否完整洗鸵。
-
- 返回指示
CFHTTPMessage
是請求還是響應(yīng)的布爾值。
- 返回指示
-
- 設(shè)置一個
CFHTTPMessage
對象的主體鸣驱。
- 設(shè)置一個
-
CFHTTPMessageSetHeaderFieldValue
- 設(shè)置HTTP消息中的標(biāo)題字段的值坚冀。
-
- 指定HTTP version 1.0
-
- 指定HTTP version 1.1
6. FTP
7. Network Diagnostics
8. Network Services
-
- 表示
CFNetService
的不透明引用。
- 表示
-
- 表示
CFNetServiceBrowser
的不透明引用陨瘩。
- 表示
-
- 服務(wù)監(jiān)視器的不透明引用贯卦。
-
- 記錄類型說明符资柔,用于通知服務(wù)監(jiān)視器要記錄的記錄更改的類型。
-
-
CFNetService
與回調(diào)函數(shù)關(guān)聯(lián)或CFNetServiceBrowser
創(chuàng)建時提供的結(jié)構(gòu)撵割。
-
-
- 錯誤代碼可能由
CFNetServices
函數(shù)返回或傳遞給CFNetServices
回調(diào)函數(shù)贿堰。
- 錯誤代碼可能由
-
- 使網(wǎng)絡(luò)服務(wù)瀏覽器對象的實例無效。
-
CFNetServiceBrowserScheduleWithRunLoop
- 在運行循環(huán)上安排一個
CFNetServiceBrowser
啡彬。
- 在運行循環(huán)上安排一個
-
- 創(chuàng)建一個網(wǎng)絡(luò)服務(wù)瀏覽器對象的一個實例羹与。
-
- 獲取網(wǎng)絡(luò)服務(wù)瀏覽器對象的Core Foundation類型標(biāo)識符。
-
CFNetServiceBrowserSearchForDomains
- 搜索域庶灿。
-
CFNetServiceBrowserSearchForServices
- 在域中搜索指定類型的服務(wù)纵搁。
-
- 停止搜索域或服務(wù)。
-
CFNetServiceBrowserUnscheduleFromRunLoop
- 從運行循環(huán)和模式中取消調(diào)度
CF NetServiceBrowser
往踢。
- 從運行循環(huán)和模式中取消調(diào)度
-
- 取消服務(wù)注冊或服務(wù)解決方案诡渴。
-
- 創(chuàng)建一個網(wǎng)絡(luò)服務(wù)對象的一個實例。
-
- 創(chuàng)建一個
CFNetService
對象的副本菲语。
- 創(chuàng)建一個
-
CFNetServiceCreateDictionaryWithTXTData
- 使用
TXT
記錄數(shù)據(jù)創(chuàng)建一個字典妄辩。
- 使用
-
CFNetServiceCreateTXTDataWithDictionary
- 將一組鍵/值對變?yōu)檫m合傳遞給CFNetServiceSetTXTData的
CFDataRef
。
- 將一組鍵/值對變?yōu)檫m合傳遞給CFNetServiceSetTXTData的
-
- 從
CFNetService
獲取IP地址山上。
- 從
-
- 從
CFNetService
獲取域眼耀。
- 從
-
- 從
CFNetService
獲取名稱。
- 從
-
- 該函數(shù)從
CFNetService
獲取端口號佩憾。
- 該函數(shù)從
-
- 查詢網(wǎng)絡(luò)服務(wù)的TXT記錄的內(nèi)容哮伟。
-
- 查詢其目標(biāo)主機(jī)的
CFNetService
。
- 查詢其目標(biāo)主機(jī)的
-
- 從
CFNetService
獲取類型妄帘。
- 從
-
- 獲取網(wǎng)絡(luò)服務(wù)對象的Core Foundation類型標(biāo)識符楞黄。
-
- 創(chuàng)建監(jiān)視記錄更改的
NetServiceMonitor
對象的實例。
- 創(chuàng)建監(jiān)視記錄更改的
-
- 獲取所有
CFNetServiceMonitor
實例的Core Foundation類型標(biāo)識符抡驼。
- 獲取所有
-
- 使網(wǎng)絡(luò)服務(wù)監(jiān)視器對象的實例無效鬼廓。
-
CFNetServiceMonitorScheduleWithRunLoop
- 在運行循環(huán)上安排一個
CFNetServiceMonitor
。
- 在運行循環(huán)上安排一個
-
- 開始監(jiān)控致盟。
-
- 停止一個
CFNetServiceMonitor
碎税。
- 停止一個
-
CFNetServiceMonitorUnscheduleFromRunLoop
- 從運行循環(huán)中取消調(diào)度
CFNetServiceMonitor
尤慰。
- 從運行循環(huán)中取消調(diào)度
-
CFNetServiceRegisterWithOptions
- 使
CFNetService
在網(wǎng)絡(luò)上可用。
- 使
-
CFNetServiceResolveWithTimeout
- 獲取
CFNetService
的IP地址或地址雷蹂。
- 獲取
-
- 將回調(diào)函數(shù)與
CFNetService
關(guān)聯(lián)或解除CFNetService
的回調(diào)函數(shù)伟端。
- 將回調(diào)函數(shù)與
-
- 設(shè)置
CFNetService
的TXT記錄
- 設(shè)置
-
CFNetServiceUnscheduleFromRunLoop
- 從運行循環(huán)中取消調(diào)度
CFNetService
。
- 從運行循環(huán)中取消調(diào)度
-
CFNetServiceScheduleWithRunLoop
- 在運行循環(huán)上安排一個
CFNetService
匪煌。
- 在運行循環(huán)上安排一個
9. Streams
-
- 此函數(shù)從流操作返回的
CFStreamError
中獲取kCFStreamErrorDomainSOCKS
域中的錯誤代碼责蝠。
- 此函數(shù)從流操作返回的
-
CFSocketStreamSOCKSGetErrorSubdomain
- 從流操作返回的
CFStreamError
中獲取與kCFStreamErrorDomainSOCKS
域中的錯誤關(guān)聯(lián)的錯誤子域。
- 從流操作返回的
-
CFStreamCreatePairWithSocketToCFHost
- 創(chuàng)建連接到給定
CFHost
對象的可讀寫流萎庭。
- 創(chuàng)建連接到給定
-
CFStreamCreatePairWithSocketToNetService
- 為
CFNetService
創(chuàng)建一對流玛歌。
- 為
-
- 流的服務(wù)類型。 提供服務(wù)類型允許系統(tǒng)正確處理流的某些屬性擎椰,包括路由和暫停行為。 大多數(shù)流不需要設(shè)置此屬性创肥。 請參閱Stream Service Types以獲取可能的值列表达舒。
-
kCFStreamNetworkServiceTypeBackground
- 指定該流是后臺下載。
-
kCFStreamNetworkServiceTypeVideo
- 指定流正在提供交互式視頻數(shù)據(jù)叹侄。
-
kCFStreamNetworkServiceTypeVoice
- 指定流正在提供交互式語音數(shù)據(jù)巩搏。
-
- 錯誤代碼是一個FTP錯誤代碼。
-
- 錯誤代碼是一個HTTP錯誤代碼趾代。
-
- 錯誤代碼是在
mach / error.h
中定義的Mach錯誤代碼贯底。
- 錯誤代碼是在
-
- 錯誤代碼是在
netdb.h
中定義的錯誤代碼。
- 錯誤代碼是在
-
kCFStreamErrorDomainNetServices
- 錯誤代碼是一個
CFNetService
錯誤代碼撒强。 有關(guān)詳細(xì)信息禽捆,請參閱 CFNetServicesError枚舉。
- 錯誤代碼是一個
-
- 錯誤代碼是SOCKS代理錯誤飘哨。
-
- 錯誤代碼是
Security / SecureTransport.h
中定義的SSL錯誤代碼胚想。
- 錯誤代碼是
-
kCFStreamErrorDomainSystemConfiguration
- 錯誤代碼是
System / ConfigurationSystemConfiguration.h
中定義的系統(tǒng)配置錯誤代碼。
- 錯誤代碼是
-
- 在Windows上運行
CFNetwork
代碼時芽隆,此域?qū)⒎祷嘏c底層TCP / IP堆棧相關(guān)的錯誤代碼浊服。 您還應(yīng)該注意,諸如ENOMEM
之類的非網(wǎng)絡(luò)錯誤是通過POSIX
域傳遞的胚吁。 有關(guān)錯誤代碼牙躺,請參閱winsock2.h
頭文件。
- 在Windows上運行
-
kCFStreamPropertyConnectionIsCellular
- 指示流是通過蜂窩(WWAN)接口連接的布爾值腕扶。 這是一個只讀屬性孽拷,在連接建立之前是false。
-
- 指示不應(yīng)通過蜂窩(WWAN)連接建立連接的布爾值半抱。 此值只能在打開流之前設(shè)置乓搬。
-
kCFStreamPropertyProxyLocalBypass
-
Proxy Local Bypass
屬性密鑰思犁。
-
-
kCFStreamPropertySOCKSPassword
- 用于設(shè)置用戶密碼所需的密鑰的常量。
-
- SOCKS代理屬性鍵进肯。
-
kCFStreamPropertySOCKSProxyHost
- 用于SOCKS代理主機(jī)密鑰的常量激蹲。
-
kCFStreamPropertySOCKSProxyPort
- 用于SOCKS代理主機(jī)端口密鑰的常量。
-
- 用于設(shè)置用戶名所需的密鑰的常量江掩。
-
- 用于SOCKS版本鍵的常量学辱。
-
- 用于復(fù)制操作的
SSL Peer Trust
屬性密鑰,它返回包含SSL握手結(jié)果的SecTrustRef
對象环形。
- 用于復(fù)制操作的
-
- 用于設(shè)置操作的SSL設(shè)置屬性鍵策泣。
-
kCFStreamPropertyShouldCloseNativeSocket
- 應(yīng)該關(guān)閉本地套接字屬性鍵。
-
kCFStreamPropertySocketRemoteHost
- 如果已知遠(yuǎn)程主機(jī)的密鑰的值是一個
CFHostRef
抬吟。 如果不是萨咕,則其值為NULL
。
- 如果已知遠(yuǎn)程主機(jī)的密鑰的值是一個
-
kCFStreamPropertySocketRemoteNetService
- 該密鑰的值是遠(yuǎn)程網(wǎng)絡(luò)服務(wù)的
CFNetServiceRef
(如果已知)火本。 如果不是危队,則其值為NULL。
- 該密鑰的值是遠(yuǎn)程網(wǎng)絡(luò)服務(wù)的
-
kCFStreamPropertySocketSecurityLevel
-
Socket Security Level
屬性鍵
-
-
- 安全屬性鍵钙畔,其值是
SecCertificateRefs
的CFArray
茫陆,除了數(shù)組中的第一個元素(SecIdentityRef)
。
- 安全屬性鍵钙畔,其值是
-
- 安全屬性鍵擎析,其值指示連接是否充當(dāng)SSL進(jìn)程中的服務(wù)器簿盅。
-
- 安全屬性鍵,其值指定流的安全級別揍魂。
-
- 其值覆蓋用于證書驗證的名稱的安全屬性密鑰桨醋。
-
kCFStreamSSLValidatesCertificateChain
- 安全屬性密鑰,其值指示是否應(yīng)驗證證書鏈现斋。
-
- 常量用于
kCFStreamSockerSOCKSVersion
鍵以指定SOCKS4
作為流的SOCKS
版本讨盒。
- 常量用于
-
- 用于
kCFStreamSOCKSVersion
鍵的常量,指定SOCKS5
作為流的SOCKS
版本步责。
- 用于
-
kCFStreamSocketSecurityLevelNegotiatedSSL
- 指定可以協(xié)商的最高級別安全協(xié)議設(shè)置為套接字流的安全協(xié)議返顺。
-
kCFStreamSocketSecurityLevelNone
- 指定不設(shè)置安全級別。
-
kCFStreamSocketSecurityLevelTLSv1
- 指定將TLS版本1設(shè)置為套接字流的安全協(xié)議蔓肯。
-
- HTTP請求的讀取流可能會返回的錯誤代碼遂鹊。
-
CFStreamErrorHTTPAuthentication
- 嘗試對請求應(yīng)用身份驗證時可能返回的身份驗證錯誤代碼。
-
- 由
kCFStreamErrorDomainSOCKS
錯誤域返回的錯誤代碼蔗包。
- 由
10. Reference
后記
本篇已結(jié)束秉扑,后面更精彩~~~~