Skip to content

class EntityTagHeaderValue

cangjie
public class EntityTagHeaderValue <: Equatable<EntityTagHeaderValue>

功能:表示 HTTP ETag 标头值(RFC 7232 §2.3)

支持:

  • 强 ETag:"abc123"
  • 弱 ETag:W/"abc123"
  • 通配符:*(仅在 If-Match / If-None-Match 中使用)

父类型:

成员概览

成员功能
init(String)构造强 ETag(isWeak = false)
init(String, Bool)构造 ETag
let any通配符 ETag(*),表示"任意 ETag"
prop tag带引号的 ETag 标签值(如 "abc123"
prop isWeak是否为弱 ETag(W/ 前缀)
func toString()序列化为字符串:弱 ETag 带 W/ 前缀
func ==(EntityTagHeaderValue)比较两个 ETag 标头值是否相等。
func hashCode()返回当前 ETag 标头值的哈希值。
func compare(EntityTagHeaderValue, Bool)RFC 7232 §2.3.2 ETag 比较
func parse(String)解析单个 ETag 字符串,格式非法时抛出异常
func tryParse(String)尝试解析单个 ETag 字符串,返回 None 表示格式无效
func parseList(?ArrayList<String>)解析逗号分隔的 ETag 列表(宽松模式,忽略无效项)
func parseStrictList(?ArrayList<String>)解析逗号分隔的 ETag 列表(严格模式,遇无效项抛出异常)
func tryParseList(?ArrayList<String>)尝试解析逗号分隔的 ETag 列表(宽松模式),有效项为空时返回 None
func tryParseStrictList(?ArrayList<String>)尝试解析逗号分隔的 ETag 列表(严格模式),遇到无效项返回 None

init(String)

cangjie
public init(tag: String)

功能:构造强 ETag(isWeak = false)

tag 必须是 quoted-string(如 "abc")或通配符 *

参数:

  • tag: String - ETag 标签值。

init(String, Bool)

cangjie
public init(tag: String, isWeak: Bool)

功能:构造 ETag

tag 必须是 quoted-string(如 "abc");若 isWeak=false 则也接受通配符 * 注意:弱 ETag 不允许 *(RFC 7232 §2.3)

参数:

  • tag: String - ETag 标签值。
  • isWeak: Bool - 是否构造为弱 ETag。

let any

cangjie
public static let any: EntityTagHeaderValue = EntityTagHeaderValue("*", false)

功能:通配符 ETag(*),表示"任意 ETag"

类型:EntityTagHeaderValue

prop tag

cangjie
public prop tag: String

功能:带引号的 ETag 标签值(如 "abc123"

类型:String

prop isWeak

cangjie
public prop isWeak: Bool

功能:是否为弱 ETag(W/ 前缀)

类型:Bool

func toString()

cangjie
public func toString(): String

功能:序列化为字符串:弱 ETag 带 W/ 前缀

返回值:

  • String - 当前 ETag 标头的字符串表示。

func ==(EntityTagHeaderValue)

cangjie
public operator func ==(other: EntityTagHeaderValue): Bool

功能:比较两个 ETag 标头值是否相等。

参数:

返回值:

  • Bool - 如果两个 ETag 标头值相等则返回 true,否则返回 false。

func hashCode()

cangjie
public func hashCode(): Int64

功能:返回当前 ETag 标头值的哈希值。

返回值:

  • Int64 - 当前 ETag 标头值的哈希值。

func compare(EntityTagHeaderValue, Bool)

cangjie
public func compare(other: EntityTagHeaderValue, useStrongComparison: Bool): Bool

功能:RFC 7232 §2.3.2 ETag 比较

useStrongComparison=true:强比较,双方均不得为弱 ETag,且 tag 字节完全相同 useStrongComparison=false:弱比较,忽略强弱标志,仅比较 tag 字节

参数:

  • other: EntityTagHeaderValue - 要比较的另一个 ETag。
  • useStrongComparison: Bool - 是否执行强比较。

返回值:

  • Bool - 满足比较规则时返回 true

func parse(String)

cangjie
public static func parse(input: String): EntityTagHeaderValue

功能:解析单个 ETag 字符串,格式非法时抛出异常

参数:

  • input: String - 待解析的 ETag 字符串。

返回值:

func tryParse(String)

cangjie
public static func tryParse(input: String): ?EntityTagHeaderValue

功能:尝试解析单个 ETag 字符串,返回 None 表示格式无效

参数:

  • input: String - 待解析的 ETag 字符串。

返回值:

func parseList(?ArrayList<String>)

cangjie
public static func parseList(inputs: ?ArrayList<String>): ArrayList<EntityTagHeaderValue>

功能:解析逗号分隔的 ETag 列表(宽松模式,忽略无效项)

参数:

  • inputs: ?ArrayList<String> - 待解析的原始字符串列表。

返回值:

func parseStrictList(?ArrayList<String>)

cangjie
public static func parseStrictList(inputs: ?ArrayList<String>): ArrayList<EntityTagHeaderValue>

功能:解析逗号分隔的 ETag 列表(严格模式,遇无效项抛出异常)

参数:

  • inputs: ?ArrayList<String> - 待解析的原始字符串列表。

返回值:

func tryParseList(?ArrayList<String>)

cangjie
public static func tryParseList(inputs: ?ArrayList<String>): ?ArrayList<EntityTagHeaderValue>

功能:尝试解析逗号分隔的 ETag 列表(宽松模式),有效项为空时返回 None

参数:

  • inputs: ?ArrayList<String> - 待解析的原始字符串列表。

返回值:

  • ?ArrayList<EntityTagHeaderValue> - 解析成功时返回 ETag 列表;失败或无有效项时返回 None

func tryParseStrictList(?ArrayList<String>)

cangjie
public static func tryParseStrictList(inputs: ?ArrayList<String>): ?ArrayList<EntityTagHeaderValue>

功能:尝试解析逗号分隔的 ETag 列表(严格模式),遇到无效项返回 None

参数:

  • inputs: ?ArrayList<String> - 待解析的原始字符串列表。

返回值:

  • ?ArrayList<EntityTagHeaderValue> - 严格解析成功时返回 ETag 列表;失败时返回 None