Http

package
v0.1.64 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2026 License: 0BSD Imports: 32 Imported by: 0

Documentation

Overview

		package Http
	 * @Author: Chris
	 * @Date: 2023-03-29 11:04:12
	 * @LastEditors: Strong
	 * @LastEditTime: 2025-03-21 15:54:08
	 * @Description: 请填写简介

 * @Author: Chris
 * @Date: 2024-06-12 17:53:09
 * @LastEditors: Chris
 * @LastEditTime: 2025-03-14 12:09:32
 * @Description: 请填写简介

 * @Author: Chris
 * @Date: 2024-06-12 13:24:32
 * @LastEditors: Chris
 * @LastEditTime: 2025-03-14 16:53:09
 * @Description: 请填写简介

 * @Author: Chris
 * @Date: 2025-03-17 00:14:34
 * @LastEditors: Chris
 * @LastEditTime: 2025-03-17 01:08:54
 * @Description: 请填写简介

 * @Author: Chris
 * @Date: 2024-05-31 14:03:31
 * @LastEditors: Strong
 * @LastEditTime: 2025-03-21 15:55:30
 * @Description: 请填写简介

 * @Author: Chris
 * @Date: 2023-06-13 23:17:20
 * @LastEditors: Chris
 * @LastEditTime: 2025-03-09 22:26:01
 * @Description: 请填写简介

 * @Author: Chris
 * @Date: 2024-07-12 15:38:38
 * @LastEditors: Chris
 * @LastEditTime: 2025-03-13 01:03:01
 * @Description: 请填写简介

 * @Author: Chris
 * @Date: 2024-05-16 22:38:04
 * @LastEditors: Chris
 * @LastEditTime: 2025-03-14 10:54:28
 * @Description: 请填写简介

 * @Author: Chris.Liu
 * @Date: 2024-07-31 11:55:13
 * @LastEditors: Chris
 * @LastEditTime: 2025-03-10 11:37:29
 * @Description: 请填写简介

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BadRequest added in v0.1.30

func BadRequest(w http.ResponseWriter, msg string, debug ...any)

func BodyTOStruct added in v0.1.36

func BodyTOStruct(r *http.Request, v any) error

func DNS01Challenge added in v0.1.25

func DNS01Challenge(dnsProvider DNSProvider, domains []string, cacheDir, mail, checkTime string, lessDayRenew int) (*tls.Config, error)

func DefaultHeader

func DefaultHeader(w http.ResponseWriter)

func Error added in v0.1.35

func Error(w http.ResponseWriter, code int, message string, debug ...any)

func Forbidden added in v0.1.29

func Forbidden(w http.ResponseWriter, msg string, debug ...any)

func GetContext added in v0.0.3

func GetContext(r *http.Request, key string) any

func GetHeader

func GetHeader(r *http.Request) map[string]string

func GetQuery added in v0.1.36

func GetQuery(r *http.Request, v any) error

GetQuery 解析 URL 查询参数到结构体 支持标签 `query:"name"` 指定参数名,默认使用蛇形命名(如 UserName -> user_name) 忽略标签 `query:"~"` 的字段

func HTTP01Challenge added in v0.1.25

func HTTP01Challenge(domains []string, cacheDir, mail string) *tls.Config

HTTP01 使用标准的HTTP-01认证

func Html

func Html(w http.ResponseWriter, templateName string, data any)

func LogAccess

func LogAccess(r *http.Request, status int, bytesWritten int)

LogAccess 记录访问日志

func LogDebug added in v0.1.13

func LogDebug(msg string, skip int)

func LogError

func LogError(r *http.Request, status int, bytesWritten int, msg string)

LogError 记录错误日志

func NewLog added in v0.1.13

func NewLog(dirPath string, maxSize int, maxBackups int, maxAge int, compress, viewOut bool) (err error)

func NewTemplates

func NewTemplates(templateDir ...string) (err error)

func NotFound added in v0.1.30

func NotFound(w http.ResponseWriter, msg string, debug ...any)

func PathValue added in v0.1.36

func PathValue(r *http.Request, v any) error

PathValue 解析 URL 路径参数到结构体 支持标签 `path:"name"` 指定参数名,默认使用蛇形命名(如 UserID -> user_id) 忽略标签 `path:"~"` 的字段

func Permission added in v0.1.36

func Permission(authName string, authorityFunc func(*http.Request, string) bool, handler http.HandlerFunc) http.HandlerFunc

func SetContext added in v0.0.3

func SetContext(r *http.Request, key string, value any) *http.Request

func Success

func Success(w http.ResponseWriter, data any, debug ...any)

func SuccessCreated added in v0.1.39

func SuccessCreated(w http.ResponseWriter, debug ...any)

func SuccessNoContent added in v0.1.39

func SuccessNoContent(w http.ResponseWriter, debug ...any)

func TimeoutFail

func TimeoutFail(w http.ResponseWriter, debug ...any)

func Unauthorized added in v0.1.30

func Unauthorized(w http.ResponseWriter, msg string, debug ...any)

func WriteJson added in v0.1.30

func WriteJson(w http.ResponseWriter, code int, message string, data any, debug ...any)

Types

type CtxKey added in v0.0.2

type CtxKey string

type DNSCertManager added in v0.1.25

type DNSCertManager struct {
	// contains filtered or unexported fields
}

DNSCertManager 实现基于DNS-01挑战的证书管理器

func NewDNSCertManager added in v0.1.25

func NewDNSCertManager(dnsProvider DNSProvider, email string, domains []string, cacheDir string) (*DNSCertManager, error)

NewDNSCertManager 创建新的DNS证书管理器

func (*DNSCertManager) CheckAndRenewCertificates added in v0.1.25

func (m *DNSCertManager) CheckAndRenewCertificates(lessDayRenew int) error

CheckAndRenewCertificates 检查所有域名的证书并在需要时续期

func (*DNSCertManager) CheckCertificateExpiry added in v0.1.25

func (m *DNSCertManager) CheckCertificateExpiry(domain string) (int, error)

CheckCertificateExpiry 检查证书到期时间,返回剩余天数

func (*DNSCertManager) GetCertificate added in v0.1.25

func (m *DNSCertManager) GetCertificate(hello *tls.ClientHelloInfo) (*tls.Certificate, error)

GetCertificate 实现tls.Config的GetCertificate方法

func (*DNSCertManager) GetCertificateFunc added in v0.1.25

func (m *DNSCertManager) GetCertificateFunc() func(*tls.ClientHelloInfo) (*tls.Certificate, error)

GetCertificateFunc 返回GetCertificate函数,用于tls.Config

func (*DNSCertManager) IsCertificateExpiringSoon added in v0.1.25

func (m *DNSCertManager) IsCertificateExpiringSoon(domain string) (bool, error)

IsCertificateExpiringSoon 检查证书是否即将到期(15天内)

func (*DNSCertManager) RenewCertificate added in v0.1.25

func (m *DNSCertManager) RenewCertificate(domain string) error

RenewCertificate 续期证书

func (*DNSCertManager) StartCertificateExpiryMonitor added in v0.1.25

func (m *DNSCertManager) StartCertificateExpiryMonitor(checkTime string, lessDayRenew int)

startCertificateExpiryMonitor 启动证书到期检测监控协程

type DNSProvider added in v0.1.25

type DNSProvider interface {
	Present(ctx context.Context, domain, token, keyAuth string) error
	CleanUp(ctx context.Context, domain, token, keyAuth string) error
}

type H

type H struct {
	Addr   string
	Router *RouterHandle
	Server *http.Server
	Err    error
	Status bool
}

func NewHttpServer

func NewHttpServer(address string, router *RouterHandle) *H

func (*H) Start

func (h *H) Start() error

func (*H) StartFileTLS added in v0.1.25

func (h *H) StartFileTLS(certFile string, keyFile string) error

func (*H) StartTLS added in v0.1.13

func (h *H) StartTLS(tlsConfig *tls.Config) error

func (*H) Stop

func (h *H) Stop() error

type HtmlTemplate

type HtmlTemplate struct {
	// contains filtered or unexported fields
}

type RESTful added in v0.1.35

type RESTful struct {
	Code    int    `json:"code"`
	Message string `json:"msg"`
	Data    any    `json:"data,omitempty"`
	Debug   any    `json:"debug,omitempty"`
	Success bool   `json:"success"`
}

type RouterHandle

type RouterHandle struct {
	Next http.Handler
	// contains filtered or unexported fields
}

func NewRouter

func NewRouter() *RouterHandle

func (*RouterHandle) Delete added in v0.1.28

func (router *RouterHandle) Delete(path string, handler http.HandlerFunc)

func (*RouterHandle) FilesServer added in v0.1.13

func (router *RouterHandle) FilesServer(path, dir string)

文件服务路由

func (*RouterHandle) Get

func (router *RouterHandle) Get(path string, handler http.HandlerFunc)

func (*RouterHandle) Head added in v0.1.28

func (router *RouterHandle) Head(path string, handler http.HandlerFunc)

func (*RouterHandle) Options added in v0.1.28

func (router *RouterHandle) Options(path string, handler http.HandlerFunc)

func (*RouterHandle) Patch added in v0.1.28

func (router *RouterHandle) Patch(path string, handler http.HandlerFunc)

func (*RouterHandle) Post

func (router *RouterHandle) Post(path string, handler http.HandlerFunc)

func (*RouterHandle) Put added in v0.1.28

func (router *RouterHandle) Put(path string, handler http.HandlerFunc)

func (*RouterHandle) ServeHTTP

func (router *RouterHandle) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*RouterHandle) SetAuth

func (router *RouterHandle) SetAuth(authPath string, authFunc auth)

func (*RouterHandle) SetContextSetter

func (router *RouterHandle) SetContextSetter(setter func(*http.Request) *http.Request)

func (*RouterHandle) SetHeader

func (router *RouterHandle) SetHeader(f func(w http.ResponseWriter))

func (*RouterHandle) SetOnEvicted

func (router *RouterHandle) SetOnEvicted(f func(http.ResponseWriter, *http.Request) bool)

func (*RouterHandle) SetSign

func (router *RouterHandle) SetSign(signPath string, signfunc sign)

func (*RouterHandle) SetTimeout

func (router *RouterHandle) SetTimeout(timeout time.Duration)

type Session

type Session struct {
	// contains filtered or unexported fields
}

Session 会话

type SessionMgr

type SessionMgr struct {
	// contains filtered or unexported fields
}

SessionMgr /*Session会话管理*/

func NewSession

func NewSession(cookieName string, maxLifeTime int64) *SessionMgr

NewSession 创建会话管理器(cookieName:在浏览器中cookie的名字;maxLifeTime:最长生命周期)

func (*SessionMgr) CheckCookieValid

func (mgr *SessionMgr) CheckCookieValid(r *http.Request) string

CheckCookieValid 判断Cookie的合法性(每进入一个页面都需要判断合法性)

func (*SessionMgr) End

func (mgr *SessionMgr) End(w http.ResponseWriter, r *http.Request)

End 结束Session

func (*SessionMgr) EndSessionBy

func (mgr *SessionMgr) EndSessionBy(sessionID string)

EndSessionBy 结束session

func (*SessionMgr) GC

func (mgr *SessionMgr) GC()

GC GC回收

func (*SessionMgr) Get

func (mgr *SessionMgr) Get(sessionID string, key interface{}) (interface{}, bool)

Get 得到session里面的值

func (*SessionMgr) GetLastAccessTime

func (mgr *SessionMgr) GetLastAccessTime(sessionID string) time.Time

GetLastAccessTime 更新最后访问时间

func (*SessionMgr) GetSessionIDList

func (mgr *SessionMgr) GetSessionIDList() []string

GetSessionIDList 得到sessionID列表

func (*SessionMgr) NewSessionID

func (mgr *SessionMgr) NewSessionID() string

NewSessionID 创建唯一ID

func (*SessionMgr) Set

func (mgr *SessionMgr) Set(sessionID string, key interface{}, value interface{})

Set 设置session里面的值

func (*SessionMgr) Start

func (mgr *SessionMgr) Start(w http.ResponseWriter) string

Start 在开始页面登陆页面,开始Session

Jump to

Keyboard shortcuts

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