版本記錄
版本號(hào) | 時(shí)間 |
---|---|
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ù)。接下來幾篇我們就一起看一下這個(gè)框架。
Overview
下面先看一下該框架的基本信息。
下面看一下該框架的基本結(jié)構(gòu)。
Topics
1. Errors
-
- 此枚舉包含在錯(cuò)誤域 kCFErrorDomainCFNetwork下返回的錯(cuò)誤代碼。
-
- 可能在
CFErrorRef
對(duì)象的userInfo
字典中提供的網(wǎng)絡(luò)相關(guān)密鑰。
- 可能在
-
- 高級(jí)錯(cuò)誤域。
2. Hosts
-
- 表示
CFHost
對(duì)象的不透明引用。
- 表示
-
- 指示要解析的數(shù)據(jù)類型的值或解析的數(shù)據(jù)類型。
-
- 包含用戶定義的
CFHost
對(duì)象數(shù)據(jù)和回調(diào)的結(jié)構(gòu)。
- 包含用戶定義的
-
- 取消host的分辨率。
-
- 通過復(fù)制創(chuàng)建一個(gè)新的主機(jī)對(duì)象。
-
- 使用地址來創(chuàng)建主機(jī)對(duì)象的實(shí)例。
-
- 使用名稱來創(chuàng)建主機(jī)對(duì)象的實(shí)例。
-
- 從主機(jī)獲取地址。
-
- 從CFHost獲取名稱。
-
- 從主機(jī)獲取可達(dá)性信息。
-
- 獲取CFHost不透明類型的Core Foundation類型標(biāo)識(shí)符。
-
- 在運(yùn)行循環(huán)上安排一個(gè)CFHost。
-
- 將客戶端上下文和回調(diào)函數(shù)與
CFHost
對(duì)象關(guān)聯(lián)起來,或者解除先前設(shè)置的客戶端上下文和回調(diào)函數(shù)的關(guān)聯(lián)。
- 將客戶端上下文和回調(diào)函數(shù)與
-
- 開始解析主機(jī)對(duì)象。
-
- 從運(yùn)行循環(huán)中取消調(diào)度
CFHost
。
- 從運(yùn)行循環(huán)中取消調(diào)度
3. Global Proxy Configuration
-
- 返回應(yīng)該用于下載給定URL的代理列表。
-
CFNetworkCopyProxiesForAutoConfigurationScript
- 執(zhí)行代理自動(dòng)配置腳本以確定用于檢索指定URL的最佳代理。
-
CFNetworkExecuteProxyAutoConfigurationScript
- 下載代理自動(dòng)配置腳本并執(zhí)行它。
-
CFNetworkExecuteProxyAutoConfigurationURL
- 下載代理自動(dòng)配置腳本并執(zhí)行它。
-
CFNetworkCopySystemProxySettings
- 返回包含當(dāng)前系統(tǒng)互聯(lián)網(wǎng)代理設(shè)置的
CFDictionary
。
- 返回包含當(dāng)前系統(tǒng)互聯(lián)網(wǎng)代理設(shè)置的
-
CFProxyAutoConfigurationResultCallback
- 代理自動(dòng)配置計(jì)算完成時(shí)調(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
- 返回一個(gè)布爾值,該值指示
CFHTTPAuthentication
對(duì)象是否與CFHTTPMessage
對(duì)象關(guān)聯(lián)。
- 返回一個(gè)布爾值,該值指示
-
CFHTTPAuthenticationCopyDomains
- 返回可以應(yīng)用給定
CFHTTPAuthentication
對(duì)象的域URL數(shù)組。
- 返回可以應(yīng)用給定
-
CFHTTPAuthenticationCopyMethod
- 獲取將
CFHTTPAuthentication
對(duì)象應(yīng)用于請(qǐng)求時(shí)將使用的最強(qiáng)的身份驗(yàn)證方法。
- 獲取將
-
- 獲取認(rèn)證信息的名稱空間。
-
CFHTTPAuthenticationCreateFromResponse
- 使用身份驗(yàn)證失敗響應(yīng)來創(chuàng)建
CFHTTPAuthentication
對(duì)象。
- 使用身份驗(yàn)證失敗響應(yīng)來創(chuàng)建
-
- 獲取
CFHTTPAuthentication
不透明類型的Core Foundation類型標(biāo)識(shí)符。
- 獲取
-
- 返回一個(gè)布爾值,該值指示
CFHTTPAuthentication
對(duì)象是否有效。
- 返回一個(gè)布爾值,該值指示
-
CFHTTPAuthenticationRequiresAccountDomain
- 返回一個(gè)布爾值,該值指示
CFHTTPAuthentication
對(duì)象是否使用需要帳戶域的身份驗(yàn)證方法。
- 返回一個(gè)布爾值,該值指示
-
CFHTTPAuthenticationRequiresOrderedRequests
- 返回一個(gè)布爾值,該值指示是否應(yīng)一次一個(gè)驗(yàn)證請(qǐng)求。
-
CFHTTPAuthenticationRequiresUserNameAndPassword
- 返回一個(gè)布爾值,該值指示
CFHTTPAuthentication
對(duì)象是否使用需要用戶名和密碼的身份驗(yàn)證方法。
- 返回一個(gè)布爾值,該值指示
-
kCFHTTPAuthenticationAccountDomain
- 帳戶域用于身份驗(yàn)證。
-
- 用于身份驗(yàn)證的密碼。
-
kCFHTTPAuthenticationSchemeBasic
- 請(qǐng)求HTTP基本認(rèn)證方案。
-
kCFHTTPAuthenticationSchemeDigest
- 請(qǐng)求HTTP摘要認(rèn)證方案。
-
kCFHTTPAuthenticationSchemeKerberos
- 請(qǐng)求HTTP Kerberos認(rèn)證方案。
-
kCFHTTPAuthenticationSchemeNTLM
- 請(qǐng)求HTTP NTLM認(rèn)證方案。
-
kCFHTTPAuthenticationSchemeNegotiate
- 請(qǐng)求HTTP協(xié)商認(rèn)證方案。
-
kCFHTTPAuthenticationSchemeNegotiate2
- 請(qǐng)求HTTP協(xié)商v2認(rèn)證方案。
-
kCFHTTPAuthenticationSchemeOAuth1
- 請(qǐng)求HTTP OAuth 1.0身份驗(yàn)證方案。
-
kCFHTTPAuthenticationSchemeXMobileMeAuthToken
- 請(qǐng)求HTTP
XMobileMeAuthToken
認(rèn)證方案。
- 請(qǐng)求HTTP
-
- 用于身份驗(yàn)證的用戶名。
5. HTTP Messages
-
- 表示HTTP消息的不透明引用。
-
CFHTTPMessageAddAuthentication
- 將認(rèn)證信息添加到請(qǐng)求。
-
- 將數(shù)據(jù)附加到
CFHTTPMessage
對(duì)象。
- 將數(shù)據(jù)附加到
-
CFHTTPMessageApplyCredentialDictionary
- 使用包含認(rèn)證憑證的字典來執(zhí)行由
CFHTTPAuthentication
對(duì)象指定的認(rèn)證方法。
- 使用包含認(rèn)證憑證的字典來執(zhí)行由
-
- 執(zhí)行由
CFHTTPAuthentication
對(duì)象指定的身份驗(yàn)證方法。
- 執(zhí)行由
-
CFHTTPMessageCopyAllHeaderFields
- 從
CFHTTPMessage
對(duì)象獲取所有頭字段。
- 從
-
- 從
CFHTTPMessage
對(duì)象獲取正文。
- 從
-
CFHTTPMessageCopyHeaderFieldValue
- 從
CFHTTPMessage
對(duì)象獲取頭字段的值。
- 從
-
CFHTTPMessageCopyRequestMethod
- 從
CFHTTPMessage
對(duì)象獲取請(qǐng)求方法。
- 從
-
- 從
CFHTTPMessage
對(duì)象獲取URL。
- 從
-
CFHTTPMessageCopyResponseStatusLine
- 從
CFHTTPMessage
對(duì)象獲取狀態(tài)行。
- 從
-
CFHTTPMessageCopySerializedMessage
- 序列化一個(gè)
CFHTTPMessage
對(duì)象。
- 序列化一個(gè)
-
- 從
CFHTTPMessage
對(duì)象獲取HTTP版本。
- 從
-
- 獲取一個(gè)
CFHTTPMessage
對(duì)象的副本。
- 獲取一個(gè)
-
- 獲取一個(gè)
CFHTTPMessage
對(duì)象的副本。
- 獲取一個(gè)
-
- 創(chuàng)建并返回一個(gè)新的空的
CFHTTPMessage
對(duì)象。
- 創(chuàng)建并返回一個(gè)新的空的
-
- 創(chuàng)建并返回一個(gè)HTTP請(qǐng)求的
CFHTTPMessage
對(duì)象。
- 創(chuàng)建并返回一個(gè)HTTP請(qǐng)求的
-
CFHTTPMessageGetResponseStatusCode
- 為HTTP響應(yīng)創(chuàng)建并返回一個(gè)
CFHTTPMessage
對(duì)象。
- 為HTTP響應(yīng)創(chuàng)建并返回一個(gè)
-
- 返回
CFHTTPMessage
opaque類型的Core Foundation類型標(biāo)識(shí)符。
- 返回
-
- 確定消息頭是否完整。
-
- 返回指示
CFHTTPMessage
是請(qǐng)求還是響應(yīng)的布爾值。
- 返回指示
-
- 設(shè)置一個(gè)
CFHTTPMessage
對(duì)象的主體。
- 設(shè)置一個(gè)
-
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)建時(shí)提供的結(jié)構(gòu)。
-
-
- 錯(cuò)誤代碼可能由
CFNetServices
函數(shù)返回或傳遞給CFNetServices
回調(diào)函數(shù)。
- 錯(cuò)誤代碼可能由
-
- 使網(wǎng)絡(luò)服務(wù)瀏覽器對(duì)象的實(shí)例無效。
-
CFNetServiceBrowserScheduleWithRunLoop
- 在運(yùn)行循環(huán)上安排一個(gè)
CFNetServiceBrowser
。
- 在運(yùn)行循環(huán)上安排一個(gè)
-
- 創(chuàng)建一個(gè)網(wǎng)絡(luò)服務(wù)瀏覽器對(duì)象的一個(gè)實(shí)例。
-
- 獲取網(wǎng)絡(luò)服務(wù)瀏覽器對(duì)象的Core Foundation類型標(biāo)識(shí)符。
-
CFNetServiceBrowserSearchForDomains
- 搜索域。
-
CFNetServiceBrowserSearchForServices
- 在域中搜索指定類型的服務(wù)。
-
- 停止搜索域或服務(wù)。
-
CFNetServiceBrowserUnscheduleFromRunLoop
- 從運(yùn)行循環(huán)和模式中取消調(diào)度
CF NetServiceBrowser
。
- 從運(yùn)行循環(huán)和模式中取消調(diào)度
-
- 取消服務(wù)注冊(cè)或服務(wù)解決方案。
-
- 創(chuàng)建一個(gè)網(wǎng)絡(luò)服務(wù)對(duì)象的一個(gè)實(shí)例。
-
- 創(chuàng)建一個(gè)
CFNetService
對(duì)象的副本。
- 創(chuàng)建一個(gè)
-
CFNetServiceCreateDictionaryWithTXTData
- 使用
TXT
記錄數(shù)據(jù)創(chuàng)建一個(gè)字典。
- 使用
-
CFNetServiceCreateTXTDataWithDictionary
- 將一組鍵/值對(duì)變?yōu)檫m合傳遞給CFNetServiceSetTXTData的
CFDataRef
。
- 將一組鍵/值對(duì)變?yōu)檫m合傳遞給CFNetServiceSetTXTData的
-
- 從
CFNetService
獲取IP地址。
- 從
-
- 從
CFNetService
獲取域。
- 從
-
- 從
CFNetService
獲取名稱。
- 從
-
- 該函數(shù)從
CFNetService
獲取端口號(hào)。
- 該函數(shù)從
-
- 查詢網(wǎng)絡(luò)服務(wù)的TXT記錄的內(nèi)容。
-
- 查詢其目標(biāo)主機(jī)的
CFNetService
。
- 查詢其目標(biāo)主機(jī)的
-
- 從
CFNetService
獲取類型。
- 從
-
- 獲取網(wǎng)絡(luò)服務(wù)對(duì)象的Core Foundation類型標(biāo)識(shí)符。
-
- 創(chuàng)建監(jiān)視記錄更改的
NetServiceMonitor
對(duì)象的實(shí)例。
- 創(chuàng)建監(jiān)視記錄更改的
-
- 獲取所有
CFNetServiceMonitor
實(shí)例的Core Foundation類型標(biāo)識(shí)符。
- 獲取所有
-
- 使網(wǎng)絡(luò)服務(wù)監(jiān)視器對(duì)象的實(shí)例無效。
-
CFNetServiceMonitorScheduleWithRunLoop
- 在運(yùn)行循環(huán)上安排一個(gè)
CFNetServiceMonitor
。
- 在運(yùn)行循環(huán)上安排一個(gè)
-
- 開始監(jiān)控。
-
- 停止一個(gè)
CFNetServiceMonitor
。
- 停止一個(gè)
-
CFNetServiceMonitorUnscheduleFromRunLoop
- 從運(yùn)行循環(huán)中取消調(diào)度
CFNetServiceMonitor
。
- 從運(yùn)行循環(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
- 從運(yùn)行循環(huán)中取消調(diào)度
CFNetService
。
- 從運(yùn)行循環(huán)中取消調(diào)度
-
CFNetServiceScheduleWithRunLoop
- 在運(yùn)行循環(huán)上安排一個(gè)
CFNetService
。
- 在運(yùn)行循環(huán)上安排一個(gè)
9. Streams
-
- 此函數(shù)從流操作返回的
CFStreamError
中獲取kCFStreamErrorDomainSOCKS
域中的錯(cuò)誤代碼。
- 此函數(shù)從流操作返回的
-
CFSocketStreamSOCKSGetErrorSubdomain
- 從流操作返回的
CFStreamError
中獲取與kCFStreamErrorDomainSOCKS
域中的錯(cuò)誤關(guān)聯(lián)的錯(cuò)誤子域。
- 從流操作返回的
-
CFStreamCreatePairWithSocketToCFHost
- 創(chuàng)建連接到給定
CFHost
對(duì)象的可讀寫流。
- 創(chuàng)建連接到給定
-
CFStreamCreatePairWithSocketToNetService
- 為
CFNetService
創(chuàng)建一對(duì)流。
- 為
-
- 流的服務(wù)類型。 提供服務(wù)類型允許系統(tǒng)正確處理流的某些屬性,包括路由和暫停行為。 大多數(shù)流不需要設(shè)置此屬性。 請(qǐng)參閱Stream Service Types以獲取可能的值列表。
-
kCFStreamNetworkServiceTypeBackground
- 指定該流是后臺(tái)下載。
-
kCFStreamNetworkServiceTypeVideo
- 指定流正在提供交互式視頻數(shù)據(jù)。
-
kCFStreamNetworkServiceTypeVoice
- 指定流正在提供交互式語音數(shù)據(jù)。
-
- 錯(cuò)誤代碼是一個(gè)FTP錯(cuò)誤代碼。
-
- 錯(cuò)誤代碼是一個(gè)HTTP錯(cuò)誤代碼。
-
- 錯(cuò)誤代碼是在
mach / error.h
中定義的Mach錯(cuò)誤代碼。
- 錯(cuò)誤代碼是在
-
- 錯(cuò)誤代碼是在
netdb.h
中定義的錯(cuò)誤代碼。
- 錯(cuò)誤代碼是在
-
kCFStreamErrorDomainNetServices
- 錯(cuò)誤代碼是一個(gè)
CFNetService
錯(cuò)誤代碼。 有關(guān)詳細(xì)信息,請(qǐng)參閱 CFNetServicesError枚舉。
- 錯(cuò)誤代碼是一個(gè)
-
- 錯(cuò)誤代碼是SOCKS代理錯(cuò)誤。
-
- 錯(cuò)誤代碼是
Security / SecureTransport.h
中定義的SSL錯(cuò)誤代碼。
- 錯(cuò)誤代碼是
-
kCFStreamErrorDomainSystemConfiguration
- 錯(cuò)誤代碼是
System / ConfigurationSystemConfiguration.h
中定義的系統(tǒng)配置錯(cuò)誤代碼。
- 錯(cuò)誤代碼是
-
- 在Windows上運(yùn)行
CFNetwork
代碼時(shí),此域?qū)⒎祷嘏c底層TCP / IP堆棧相關(guān)的錯(cuò)誤代碼。 您還應(yīng)該注意,諸如ENOMEM
之類的非網(wǎng)絡(luò)錯(cuò)誤是通過POSIX
域傳遞的。 有關(guān)錯(cuò)誤代碼,請(qǐng)參閱winsock2.h
頭文件。
- 在Windows上運(yùn)行
-
kCFStreamPropertyConnectionIsCellular
- 指示流是通過蜂窩(WWAN)接口連接的布爾值。 這是一個(gè)只讀屬性,在連接建立之前是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
對(duì)象。
- 用于復(fù)制操作的
-
- 用于設(shè)置操作的SSL設(shè)置屬性鍵。
-
kCFStreamPropertyShouldCloseNativeSocket
- 應(yīng)該關(guān)閉本地套接字屬性鍵。
-
kCFStreamPropertySocketRemoteHost
- 如果已知遠(yuǎn)程主機(jī)的密鑰的值是一個(gè)
CFHostRef
。 如果不是,則其值為NULL
。
- 如果已知遠(yuǎn)程主機(jī)的密鑰的值是一個(gè)
-
kCFStreamPropertySocketRemoteNetService
- 該密鑰的值是遠(yuǎn)程網(wǎng)絡(luò)服務(wù)的
CFNetServiceRef
(如果已知)。 如果不是,則其值為NULL。
- 該密鑰的值是遠(yuǎn)程網(wǎng)絡(luò)服務(wù)的
-
kCFStreamPropertySocketSecurityLevel
-
Socket Security Level
屬性鍵
-
-
- 安全屬性鍵,其值是
SecCertificateRefs
的CFArray
,除了數(shù)組中的第一個(gè)元素(SecIdentityRef)
。
- 安全屬性鍵,其值是
-
- 安全屬性鍵,其值指示連接是否充當(dāng)SSL進(jìn)程中的服務(wù)器。
-
- 安全屬性鍵,其值指定流的安全級(jí)別。
-
- 其值覆蓋用于證書驗(yàn)證的名稱的安全屬性密鑰。
-
kCFStreamSSLValidatesCertificateChain
- 安全屬性密鑰,其值指示是否應(yīng)驗(yàn)證證書鏈。
-
- 常量用于
kCFStreamSockerSOCKSVersion
鍵以指定SOCKS4
作為流的SOCKS
版本。
- 常量用于
-
- 用于
kCFStreamSOCKSVersion
鍵的常量,指定SOCKS5
作為流的SOCKS
版本。
- 用于
-
kCFStreamSocketSecurityLevelNegotiatedSSL
- 指定可以協(xié)商的最高級(jí)別安全協(xié)議設(shè)置為套接字流的安全協(xié)議。
-
kCFStreamSocketSecurityLevelNone
- 指定不設(shè)置安全級(jí)別。
-
kCFStreamSocketSecurityLevelTLSv1
- 指定將TLS版本1設(shè)置為套接字流的安全協(xié)議。
-
- HTTP請(qǐng)求的讀取流可能會(huì)返回的錯(cuò)誤代碼。
-
CFStreamErrorHTTPAuthentication
- 嘗試對(duì)請(qǐng)求應(yīng)用身份驗(yàn)證時(shí)可能返回的身份驗(yàn)證錯(cuò)誤代碼。
-
- 由
kCFStreamErrorDomainSOCKS
錯(cuò)誤域返回的錯(cuò)誤代碼。
- 由
10. Reference
后記
本篇已結(jié)束,后面更精彩~~~~