qheader

package module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2020 License: MIT Imports: 4 Imported by: 6

README

qheader Go license codecov

解析报 quality factor 报头的内容,诸如 Accept、Accept-Charset 等报头。

安装

go get github.com/issue9/qheader

文档

Go Walker PkgGoDev

版权

本项目源码采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。

文档内容的版权由各个文档各自表述。

Documentation

Overview

Package qheader 用于处理 quality factor 报头

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Header struct {
	Content string // 完整的内容

	// 解析之后的内容
	Value string
	Q     float32
	Err   error
}

Header 表示报头内容的单个元素内容

比如 zh-cmt;q=0.8, zh-cmn;q=1 分根据 , 拆分成两个 Header 对象。

func Accept added in v0.3.0

func Accept(r *http.Request) []*Header

Accept 返回报头 Accept 处理后的内容列表

func AcceptCharset added in v0.3.0

func AcceptCharset(r *http.Request) []*Header

AcceptCharset 返回报头 Accept-Charset 处理后的内容列表

func AcceptEncoding added in v0.3.0

func AcceptEncoding(r *http.Request) []*Header

AcceptEncoding 返回报头 Accept-Encoding 处理后的内容列表

func AcceptLanguage added in v0.3.0

func AcceptLanguage(r *http.Request) []*Header

AcceptLanguage 返回报头 Accept-Language 处理后的内容列表

func Parse

func Parse(header string, any string) []*Header

Parse 将报头内容解析为 []*Header,并对内容进行排序之后返回

排序方式如下:

Q 值大的靠前,如果 Q 值相同,则全名的比带通配符的靠前,*/* 最后。

q 值为 0 的数据将被过滤,比如:

application/*;q=0.1,application/xml;q=0.1,text/html;q=0

其中的 text/html 不会被返回,application/xml 的优先级会高于 application/*

header 表示报头的内容; any 表示通配符的值,只能是 */* 或是 *,其它情况则 panic;

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL