版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.02.07 |
前言
CFNetwork框架访问网络服务并处理网络配置的变化。 建立在网络协议抽象的基础上,可以简化诸如使用BSD套接字,管理HTTP和FTP服务器以及管理Bonjour服务等任务。接下来几篇我们就一起看一下这个框架。
Overview
下面先看一下该框架的基本信息。
下面看一下该框架的基本结构。
Topics
1. Errors
-
CFNetworkErrors
- 此枚举包含在错误域 kCFErrorDomainCFNetwork下返回的错误代码。
-
Error Dictionary Keys
- 可能在
CFErrorRef
对象的userInfo
字典中提供的网络相关密钥。
- 可能在
-
Error Domains
- 高级错误域。
2. Hosts
-
CFHostRef
- 表示
CFHost
对象的不透明引用。
- 表示
-
CFHostInfoType
- 指示要解析的数据类型的值或解析的数据类型。
-
CFHostClientContext
- 包含用户定义的
CFHost
对象数据和回调的结构。
- 包含用户定义的
-
CFHostCancelInfoResolution
- 取消host的分辨率。
-
CFHostCreateCopy
- 通过复制创建一个新的主机对象。
-
CFHostCreateWithAddress
- 使用地址来创建主机对象的实例。
-
CFHostCreateWithName
- 使用名称来创建主机对象的实例。
-
CFHostGetAddressing
- 从主机获取地址。
-
CFHostGetNames
- 从CFHost获取名称。
-
CFHostGetReachability
- 从主机获取可达性信息。
-
CFHostGetTypeID
- 获取CFHost不透明类型的Core Foundation类型标识符。
-
CFHostScheduleWithRunLoop
- 在运行循环上安排一个CFHost。
-
CFHostSetClient
- 将客户端上下文和回调函数与
CFHost
对象关联起来,或者解除先前设置的客户端上下文和回调函数的关联。
- 将客户端上下文和回调函数与
-
CFHostStartInfoResolution
- 开始解析主机对象。
-
CFHostUnscheduleFromRunLoop
- 从运行循环中取消调度
CFHost
。
- 从运行循环中取消调度
3. Global Proxy Configuration
-
CFNetworkCopyProxiesForURL
- 返回应该用于下载给定URL的代理列表。
-
CFNetworkCopyProxiesForAutoConfigurationScript
- 执行代理自动配置脚本以确定用于检索指定URL的最佳代理。
-
CFNetworkExecuteProxyAutoConfigurationScript
- 下载代理自动配置脚本并执行它。
-
CFNetworkExecuteProxyAutoConfigurationURL
- 下载代理自动配置脚本并执行它。
-
CFNetworkCopySystemProxySettings
- 返回包含当前系统互联网代理设置的
CFDictionary
。
- 返回包含当前系统互联网代理设置的
-
CFProxyAutoConfigurationResultCallback
- 代理自动配置计算完成时调用的回调函数。
-
Property Keys
- 调用属性
get/set
函数的键,如 CFReadStreamSetProperty
和CFReadStreamCopyProperty。
- 调用属性
-
Proxy Types
- 指定代理类型的常量。
- Global Proxy Settings Constants
- CFNetworkCopySystemProxySettings返回的全局代理设置字典中的键的常量。
4. HTTP Authentication
-
CFHTTPAuthenticationRef
- 表示HTTP认证信息的不透明引用。
-
CFHTTPAuthenticationAppliesToRequest
- 返回一个布尔值,该值指示
CFHTTPAuthentication
对象是否与CFHTTPMessage
对象关联。
- 返回一个布尔值,该值指示
-
CFHTTPAuthenticationCopyDomains
- 返回可以应用给定
CFHTTPAuthentication
对象的域URL数组。
- 返回可以应用给定
-
CFHTTPAuthenticationCopyMethod
- 获取将
CFHTTPAuthentication
对象应用于请求时将使用的最强的身份验证方法。
- 获取将
-
CFHTTPAuthenticationCopyRealm
- 获取认证信息的名称空间。
-
CFHTTPAuthenticationCreateFromResponse
- 使用身份验证失败响应来创建
CFHTTPAuthentication
对象。
- 使用身份验证失败响应来创建
-
CFHTTPAuthenticationGetTypeID
- 获取
CFHTTPAuthentication
不透明类型的Core Foundation类型标识符。
- 获取
-
CFHTTPAuthenticationIsValid
- 返回一个布尔值,该值指示
CFHTTPAuthentication
对象是否有效。
- 返回一个布尔值,该值指示
-
CFHTTPAuthenticationRequiresAccountDomain
- 返回一个布尔值,该值指示
CFHTTPAuthentication
对象是否使用需要帐户域的身份验证方法。
- 返回一个布尔值,该值指示
-
CFHTTPAuthenticationRequiresOrderedRequests
- 返回一个布尔值,该值指示是否应一次一个验证请求。
-
CFHTTPAuthenticationRequiresUserNameAndPassword
- 返回一个布尔值,该值指示
CFHTTPAuthentication
对象是否使用需要用户名和密码的身份验证方法。
- 返回一个布尔值,该值指示
-
kCFHTTPAuthenticationAccountDomain
- 帐户域用于身份验证。
-
kCFHTTPAuthenticationPassword
- 用于身份验证的密码。
-
kCFHTTPAuthenticationSchemeBasic
- 请求HTTP基本认证方案。
-
kCFHTTPAuthenticationSchemeDigest
- 请求HTTP摘要认证方案。
-
kCFHTTPAuthenticationSchemeKerberos
- 请求HTTP Kerberos认证方案。
-
kCFHTTPAuthenticationSchemeNTLM
- 请求HTTP NTLM认证方案。
-
kCFHTTPAuthenticationSchemeNegotiate
- 请求HTTP协商认证方案。
-
kCFHTTPAuthenticationSchemeNegotiate2
- 请求HTTP协商v2认证方案。
-
kCFHTTPAuthenticationSchemeOAuth1
- 请求HTTP OAuth 1.0身份验证方案。
-
kCFHTTPAuthenticationSchemeXMobileMeAuthToken
- 请求HTTP
XMobileMeAuthToken
认证方案。
- 请求HTTP
-
kCFHTTPAuthenticationUsername
- 用于身份验证的用户名。
5. HTTP Messages
-
CFHTTPMessageRef
- 表示HTTP消息的不透明引用。
-
CFHTTPMessageAddAuthentication
- 将认证信息添加到请求。
-
CFHTTPMessageAppendBytes
- 将数据附加到
CFHTTPMessage
对象。
- 将数据附加到
-
CFHTTPMessageApplyCredentialDictionary
- 使用包含认证凭证的字典来执行由
CFHTTPAuthentication
对象指定的认证方法。
- 使用包含认证凭证的字典来执行由
-
CFHTTPMessageApplyCredentials
- 执行由
CFHTTPAuthentication
对象指定的身份验证方法。
- 执行由
-
CFHTTPMessageCopyAllHeaderFields
- 从
CFHTTPMessage
对象获取所有头字段。
- 从
-
CFHTTPMessageCopyBody
- 从
CFHTTPMessage
对象获取正文。
- 从
-
CFHTTPMessageCopyHeaderFieldValue
- 从
CFHTTPMessage
对象获取头字段的值。
- 从
-
CFHTTPMessageCopyRequestMethod
- 从
CFHTTPMessage
对象获取请求方法。
- 从
-
CFHTTPMessageCopyRequestURL
- 从
CFHTTPMessage
对象获取URL。
- 从
-
CFHTTPMessageCopyResponseStatusLine
- 从
CFHTTPMessage
对象获取状态行。
- 从
-
CFHTTPMessageCopySerializedMessage
- 序列化一个
CFHTTPMessage
对象。
- 序列化一个
-
CFHTTPMessageCopyVersion
- 从
CFHTTPMessage
对象获取HTTP版本。
- 从
-
CFHTTPMessageCreateCopy
- 获取一个
CFHTTPMessage
对象的副本。
- 获取一个
-
CFHTTPMessageCreateEmpty
- 获取一个
CFHTTPMessage
对象的副本。
- 获取一个
-
CFHTTPMessageCreateRequest
- 创建并返回一个新的空的
CFHTTPMessage
对象。
- 创建并返回一个新的空的
-
CFHTTPMessageCreateResponse
- 创建并返回一个HTTP请求的
CFHTTPMessage
对象。
- 创建并返回一个HTTP请求的
-
CFHTTPMessageGetResponseStatusCode
- 为HTTP响应创建并返回一个
CFHTTPMessage
对象。
- 为HTTP响应创建并返回一个
-
CFHTTPMessageGetTypeID
- 返回
CFHTTPMessage
opaque类型的Core Foundation类型标识符。
- 返回
-
CFHTTPMessageIsHeaderComplete
- 确定消息头是否完整。
-
CFHTTPMessageIsRequest
- 返回指示
CFHTTPMessage
是请求还是响应的布尔值。
- 返回指示
-
CFHTTPMessageSetBody
- 设置一个
CFHTTPMessage
对象的主体。
- 设置一个
-
CFHTTPMessageSetHeaderFieldValue
- 设置HTTP消息中的标题字段的值。
-
kCFHTTPVersion1_0
- 指定HTTP version 1.0
-
kCFHTTPVersion1_1
- 指定HTTP version 1.1
kCFHTTPVersion2_0
6. FTP
CFFTPCreateParsedResourceListingkCFFTPResourceGroupkCFFTPResourceLinkkCFFTPResourceModDatekCFFTPResourceModekCFFTPResourceNamekCFFTPResourceOwnerkCFFTPResourceSizekCFFTPResourceType
7. Network Diagnostics
CFNetDiagnosticRef
CFNetDiagnosticStatusValuesCFNetDiagnosticCopyNetworkStatusPassivelyCFNetDiagnosticCreateWithStreamsCFNetDiagnosticCreateWithURLCFNetDiagnosticDiagnoseProblemInteractivelyCFNetDiagnosticSetName
8. Network Services
-
CFNetServiceRef
- 表示
CFNetService
的不透明引用。
- 表示
-
CFNetServiceBrowserRef
- 表示
CFNetServiceBrowser
的不透明引用。
- 表示
CFNetServiceBrowserFlags
-
CFNetServiceMonitorRef
- 服务监视器的不透明引用。
-
CFNetServiceMonitorType
- 记录类型说明符,用于通知服务监视器要记录的记录更改的类型。
-
CFNetServiceClientContext
-
CFNetService
与回调函数关联或CFNetServiceBrowser
创建时提供的结构。
-
CFNetServiceRegisterFlags
-
CFNetServicesError
- 错误代码可能由
CFNetServices
函数返回或传递给CFNetServices
回调函数。
- 错误代码可能由
-
CFNetServiceBrowserInvalidate
- 使网络服务浏览器对象的实例无效。
-
CFNetServiceBrowserScheduleWithRunLoop
- 在运行循环上安排一个
CFNetServiceBrowser
。
- 在运行循环上安排一个
-
CFNetServiceBrowserCreate
- 创建一个网络服务浏览器对象的一个实例。
-
CFNetServiceBrowserGetTypeID
- 获取网络服务浏览器对象的Core Foundation类型标识符。
-
CFNetServiceBrowserSearchForDomains
- 搜索域。
-
CFNetServiceBrowserSearchForServices
- 在域中搜索指定类型的服务。
-
CFNetServiceBrowserStopSearch
- 停止搜索域或服务。
-
CFNetServiceBrowserUnscheduleFromRunLoop
- 从运行循环和模式中取消调度
CF NetServiceBrowser
。
- 从运行循环和模式中取消调度
-
CFNetServiceCancel
- 取消服务注册或服务解决方案。
-
CFNetServiceCreate
- 创建一个网络服务对象的一个实例。
-
CFNetServiceCreateCopy
- 创建一个
CFNetService
对象的副本。
- 创建一个
-
CFNetServiceCreateDictionaryWithTXTData
- 使用
TXT
记录数据创建一个字典。
- 使用
-
CFNetServiceCreateTXTDataWithDictionary
- 将一组键/值对变为适合传递给CFNetServiceSetTXTData的
CFDataRef
。
- 将一组键/值对变为适合传递给CFNetServiceSetTXTData的
-
CFNetServiceGetAddressing
- 从
CFNetService
获取IP地址。
- 从
-
CFNetServiceGetDomain
- 从
CFNetService
获取域。
- 从
-
CFNetServiceGetName
- 从
CFNetService
获取名称。
- 从
-
CFNetServiceGetPortNumber
- 该函数从
CFNetService
获取端口号。
- 该函数从
CFNetServiceGetProtocolSpecificInformation-
CFNetServiceGetTXTData
- 查询网络服务的TXT记录的内容。
-
CFNetServiceGetTargetHost
- 查询其目标主机的
CFNetService
。
- 查询其目标主机的
-
CFNetServiceGetType
- 从
CFNetService
获取类型。
- 从
-
CFNetServiceGetTypeID
- 获取网络服务对象的Core Foundation类型标识符。
-
CFNetServiceMonitorCreate
- 创建监视记录更改的
NetServiceMonitor
对象的实例。
- 创建监视记录更改的
-
CFNetServiceMonitorGetTypeID
- 获取所有
CFNetServiceMonitor
实例的Core Foundation类型标识符。
- 获取所有
-
CFNetServiceMonitorInvalidate
- 使网络服务监视器对象的实例无效。
-
CFNetServiceMonitorScheduleWithRunLoop
- 在运行循环上安排一个
CFNetServiceMonitor
。
- 在运行循环上安排一个
-
CFNetServiceMonitorStart
- 开始监控。
-
CFNetServiceMonitorStop
- 停止一个
CFNetServiceMonitor
。
- 停止一个
-
CFNetServiceMonitorUnscheduleFromRunLoop
- 从运行循环中取消调度
CFNetServiceMonitor
。
- 从运行循环中取消调度
CFNetServiceRegister-
CFNetServiceRegisterWithOptions
- 使
CFNetService
在网络上可用。
- 使
CFNetServiceResolve-
CFNetServiceResolveWithTimeout
- 获取
CFNetService
的IP地址或地址。
- 获取
-
CFNetServiceSetClient
- 将回调函数与
CFNetService
关联或解除CFNetService
的回调函数。
- 将回调函数与
CFNetServiceSetProtocolSpecificInformation-
CFNetServiceSetTXTData
- 设置
CFNetService
的TXT记录
- 设置
-
CFNetServiceUnscheduleFromRunLoop
- 从运行循环中取消调度
CFNetService
。
- 从运行循环中取消调度
-
CFNetServiceScheduleWithRunLoop
- 在运行循环上安排一个
CFNetService
。
- 在运行循环上安排一个
9. Streams
CFReadStreamCreateForHTTPRequestCFReadStreamCreateForStreamedHTTPRequestCFHTTPReadStreamSetRedirectsAutomaticallykCFStreamPropertyHTTPAttemptPersistentConnectionkCFStreamPropertyHTTPFinalRequestkCFStreamPropertyHTTPFinalURLkCFStreamPropertyHTTPProxykCFStreamPropertyHTTPProxyHostkCFStreamPropertyHTTPProxyPortkCFStreamPropertyHTTPRequestBytesWrittenCountkCFStreamPropertyHTTPResponseHeaderkCFStreamPropertyHTTPSProxyHostkCFStreamPropertyHTTPSProxyPortkCFStreamPropertyHTTPShouldAutoredirectCFWriteStreamCreateWithFTPURLCFReadStreamCreateWithFTPURLkCFStreamPropertyFTPAttemptPersistentConnectionkCFStreamPropertyFTPFetchResourceInfokCFStreamPropertyFTPFileTransferOffsetkCFStreamPropertyFTPPasswordkCFStreamPropertyFTPProxykCFStreamPropertyFTPProxyHostkCFStreamPropertyFTPProxyPasswordkCFStreamPropertyFTPProxyPortkCFStreamPropertyFTPProxyUserkCFStreamPropertyFTPResourceSizekCFStreamPropertyFTPUsePassiveModekCFStreamPropertyFTPUserName-
CFSocketStreamSOCKSGetError
- 此函数从流操作返回的
CFStreamError
中获取kCFStreamErrorDomainSOCKS
域中的错误代码。
- 此函数从流操作返回的
-
CFSocketStreamSOCKSGetErrorSubdomain
- 从流操作返回的
CFStreamError
中获取与kCFStreamErrorDomainSOCKS
域中的错误关联的错误子域。
- 从流操作返回的
-
CFStreamCreatePairWithSocketToCFHost
- 创建连接到给定
CFHost
对象的可读写流。
- 创建连接到给定
-
CFStreamCreatePairWithSocketToNetService
- 为
CFNetService
创建一对流。
- 为
-
kCFStreamNetworkServiceType
- 流的服务类型。 提供服务类型允许系统正确处理流的某些属性,包括路由和暂停行为。 大多数流不需要设置此属性。 请参阅Stream Service Types以获取可能的值列表。
-
kCFStreamNetworkServiceTypeBackground
- 指定该流是后台下载。
kCFStreamNetworkServiceTypeCallSignaling
-
kCFStreamNetworkServiceTypeVideo
- 指定流正在提供交互式视频数据。
kCFStreamNetworkServiceTypeVoIP-
kCFStreamNetworkServiceTypeVoice
- 指定流正在提供交互式语音数据。
-
kCFStreamErrorDomainFTP
- 错误代码是一个FTP错误代码。
-
kCFStreamErrorDomainHTTP
- 错误代码是一个HTTP错误代码。
-
kCFStreamErrorDomainMach
- 错误代码是在
mach / error.h
中定义的Mach错误代码。
- 错误代码是在
-
kCFStreamErrorDomainNetDB
- 错误代码是在
netdb.h
中定义的错误代码。
- 错误代码是在
-
kCFStreamErrorDomainNetServices
- 错误代码是一个
CFNetService
错误代码。 有关详细信息,请参阅 CFNetServicesError枚举。
- 错误代码是一个
-
kCFStreamErrorDomainSOCKS
- 错误代码是SOCKS代理错误。
-
kCFStreamErrorDomainSSL
- 错误代码是
Security / SecureTransport.h
中定义的SSL错误代码。
- 错误代码是
-
kCFStreamErrorDomainSystemConfiguration
- 错误代码是
System / ConfigurationSystemConfiguration.h
中定义的系统配置错误代码。
- 错误代码是
-
kCFStreamErrorDomainWinSock
- 在Windows上运行
CFNetwork
代码时,此域将返回与底层TCP / IP堆栈相关的错误代码。 您还应该注意,诸如ENOMEM
之类的非网络错误是通过POSIX
域传递的。 有关错误代码,请参阅winsock2.h
头文件。
- 在Windows上运行
-
kCFStreamPropertyConnectionIsCellular
- 指示流是通过蜂窝(WWAN)接口连接的布尔值。 这是一个只读属性,在连接建立之前是false。
-
kCFStreamPropertyNoCellular
- 指示不应通过蜂窝(WWAN)连接建立连接的布尔值。 此值只能在打开流之前设置。
-
kCFStreamPropertyProxyLocalBypass
-
Proxy Local Bypass
属性密钥。
-
-
kCFStreamPropertySOCKSPassword
- 用于设置用户密码所需的密钥的常量。
-
kCFStreamPropertySOCKSProxy
- SOCKS代理属性键。
-
kCFStreamPropertySOCKSProxyHost
- 用于SOCKS代理主机密钥的常量。
-
kCFStreamPropertySOCKSProxyPort
- 用于SOCKS代理主机端口密钥的常量。
-
kCFStreamPropertySOCKSUser
- 用于设置用户名所需的密钥的常量。
-
kCFStreamPropertySOCKSVersion
- 用于SOCKS版本键的常量。
kCFStreamPropertySSLContext
kCFStreamPropertySSLPeerCertificates-
kCFStreamPropertySSLPeerTrust
- 用于复制操作的
SSL Peer Trust
属性密钥,它返回包含SSL握手结果的SecTrustRef
对象。
- 用于复制操作的
-
kCFStreamPropertySSLSettings
- 用于设置操作的SSL设置属性键。
-
kCFStreamPropertyShouldCloseNativeSocket
- 应该关闭本地套接字属性键。
kCFStreamPropertySocketExtendedBackgroundIdleMode
-
kCFStreamPropertySocketRemoteHost
- 如果已知远程主机的密钥的值是一个
CFHostRef
。 如果不是,则其值为NULL
。
- 如果已知远程主机的密钥的值是一个
-
kCFStreamPropertySocketRemoteNetService
- 该密钥的值是远程网络服务的
CFNetServiceRef
(如果已知)。 如果不是,则其值为NULL。
- 该密钥的值是远程网络服务的
-
kCFStreamPropertySocketSecurityLevel
-
Socket Security Level
属性键
-
kCFStreamSSLAllowsAnyRootkCFStreamSSLAllowsExpiredCertificateskCFStreamSSLAllowsExpiredRoots-
kCFStreamSSLCertificates
- 安全属性键,其值是
SecCertificateRefs
的CFArray
,除了数组中的第一个元素(SecIdentityRef)
。
- 安全属性键,其值是
-
kCFStreamSSLIsServer
- 安全属性键,其值指示连接是否充当SSL进程中的服务器。
-
kCFStreamSSLLeve
- 安全属性键,其值指定流的安全级别。
-
kCFStreamSSLPeerName
- 其值覆盖用于证书验证的名称的安全属性密钥。
-
kCFStreamSSLValidatesCertificateChain
- 安全属性密钥,其值指示是否应验证证书链。
-
kCFStreamSocketSOCKSVersion4
- 常量用于
kCFStreamSockerSOCKSVersion
键以指定SOCKS4
作为流的SOCKS
版本。
- 常量用于
-
kCFStreamSocketSOCKSVersion5
- 用于
kCFStreamSOCKSVersion
键的常量,指定SOCKS5
作为流的SOCKS
版本。
- 用于
-
kCFStreamSocketSecurityLevelNegotiatedSSL
- 指定可以协商的最高级别安全协议设置为套接字流的安全协议。
-
kCFStreamSocketSecurityLevelNone
- 指定不设置安全级别。
kCFStreamSockeSecurityLevelSSLv2kCFStreamSocketSecurityLevelSSLv3-
kCFStreamSocketSecurityLevelTLSv1
- 指定将TLS版本1设置为套接字流的安全协议。
-
CFStreamErrorHTTP
- HTTP请求的读取流可能会返回的错误代码。
-
CFStreamErrorHTTPAuthentication
- 尝试对请求应用身份验证时可能返回的身份验证错误代码。
-
Secure Sockets (SOCKS) Errors
- 由
kCFStreamErrorDomainSOCKS
错误域返回的错误代码。
- 由
10. Reference
CFNetwork Data Types
CFNetwork Enumerations
后记
本篇已结束,后面更精彩~~~~