From ad167b6646ab773140dbd85de4d1719b38a69067 Mon Sep 17 00:00:00 2001 From: wjqserver <114663932+WJQSERVER@users.noreply.github.com> Date: Fri, 18 Jul 2025 15:26:43 +0800 Subject: [PATCH 1/3] add Text --- context.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/context.go b/context.go index 6479a69..b98f77c 100644 --- a/context.go +++ b/context.go @@ -271,6 +271,13 @@ func (c *Context) String(code int, format string, values ...interface{}) { c.Writer.Write([]byte(fmt.Sprintf(format, values...))) } +// Text 向响应写入无需格式化的string +func (c *Context) Text(code int, text string) { + c.Writer.Header().Set("Content-Type", "text/plain; charset=utf-8") + c.Writer.WriteHeader(code) + c.Writer.Write([]byte(text)) +} + // JSON 向响应写入 JSON 数据 // 设置 Content-Type 为 application/json func (c *Context) JSON(code int, obj interface{}) { From b06b4a227f07007e1ca6710895bf622091242ef2 Mon Sep 17 00:00:00 2001 From: wjqserver <114663932+WJQSERVER@users.noreply.github.com> Date: Fri, 18 Jul 2025 15:30:03 +0800 Subject: [PATCH 2/3] update deps --- go.mod | 7 +++++-- go.sum | 6 ++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index a3af682..b956fe8 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,12 @@ go 1.24.4 require ( github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6 - github.com/WJQSERVER-STUDIO/httpc v0.8.0 + github.com/WJQSERVER-STUDIO/httpc v0.8.1 github.com/fenthope/reco v0.0.3 github.com/go-json-experiment/json v0.0.0-20250714165856-be8212f5270d ) -require github.com/valyala/bytebufferpool v1.0.0 // indirect +require ( + github.com/valyala/bytebufferpool v1.0.0 // indirect + golang.org/x/net v0.42.0 // indirect +) diff --git a/go.sum b/go.sum index 896c53c..7495b44 100644 --- a/go.sum +++ b/go.sum @@ -1,10 +1,12 @@ github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6 h1:/50VJYXd6jcu+p5BnEBDyiX0nAyGxas1W3DCnrYMxMY= github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6/go.mod h1:FZ6XE+4TKy4MOfX1xWKe6Rwsg0ucYFCdNh1KLvyKTfc= -github.com/WJQSERVER-STUDIO/httpc v0.8.0 h1:G7inJ5EEsg5+BkeFiNIo/6+Mj7Ygiq85yMT3Ld7frJY= -github.com/WJQSERVER-STUDIO/httpc v0.8.0/go.mod h1:50297rvgppmgPbZEtWzTWgkomoqPREkGy9T3Y/NqN7o= +github.com/WJQSERVER-STUDIO/httpc v0.8.1 h1:/eG8aYKL3WfQILIRbG+cbzQjPkNHEPTqfGUdQS5rtI4= +github.com/WJQSERVER-STUDIO/httpc v0.8.1/go.mod h1:mxXBf2hqbQGNHkVy/7wfU7Xi2s09MyZpbY2hyR+4uD4= github.com/fenthope/reco v0.0.3 h1:RmnQ0D9a8PWtwOODawitTe4BztTnS9wYwrDbipISNq4= github.com/fenthope/reco v0.0.3/go.mod h1:mDkGLHte5udWTIcjQTxrABRcf56SSdxBOCLgrRDwI/Y= github.com/go-json-experiment/json v0.0.0-20250714165856-be8212f5270d h1:+d6m5Bjvv0/RJct1VcOw2P5bvBOGjENmxORJYnSYDow= github.com/go-json-experiment/json v0.0.0-20250714165856-be8212f5270d/go.mod h1:TiCD2a1pcmjd7YnhGH0f/zKNcCD06B029pHhzV23c2M= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs= +golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= From 6b3f3335ab53578d122a9e999794dcb22160ba39 Mon Sep 17 00:00:00 2001 From: wjqserver <114663932+WJQSERVER@users.noreply.github.com> Date: Fri, 18 Jul 2025 17:40:01 +0800 Subject: [PATCH 3/3] replace to iox --- context.go | 12 ++++++------ go.mod | 3 ++- go.sum | 2 ++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/context.go b/context.go index b98f77c..d246ce3 100644 --- a/context.go +++ b/context.go @@ -23,7 +23,7 @@ import ( "github.com/fenthope/reco" "github.com/go-json-experiment/json" - "github.com/WJQSERVER-STUDIO/go-utils/copyb" + "github.com/WJQSERVER-STUDIO/go-utils/iox" "github.com/WJQSERVER-STUDIO/httpc" ) @@ -431,7 +431,7 @@ func (c *Context) WriteStream(reader io.Reader) (written int64, err error) { c.Writer.WriteHeader(http.StatusOK) // 默认 200 OK } - written, err = copyb.Copy(c.Writer, reader) // 从 reader 读取并写入 ResponseWriter + written, err = iox.Copy(c.Writer, reader) // 从 reader 读取并写入 ResponseWriter if err != nil { c.AddError(fmt.Errorf("failed to write stream: %w", err)) } @@ -471,7 +471,7 @@ func (c *Context) GetReqBodyFull() ([]byte, error) { }() } - data, err := copyb.ReadAll(limitBytesReader) + data, err := iox.ReadAll(limitBytesReader) if err != nil { c.AddError(fmt.Errorf("failed to read request body: %w", err)) return nil, fmt.Errorf("failed to read request body: %w", err) @@ -505,7 +505,7 @@ func (c *Context) GetReqBodyBuffer() (*bytes.Buffer, error) { }() } - data, err := copyb.ReadAll(limitBytesReader) + data, err := iox.ReadAll(limitBytesReader) if err != nil { c.AddError(fmt.Errorf("failed to read request body: %w", err)) return nil, fmt.Errorf("failed to read request body: %w", err) @@ -678,7 +678,7 @@ func (c *Context) SetBodyStream(reader io.Reader, contentSize int) { // 将 reader 的内容直接复制到 ResponseWriter // ResponseWriter 实现了 io.Writer 接口 - _, err := copyb.Copy(c.Writer, reader) + _, err := iox.Copy(c.Writer, reader) if err != nil { c.AddError(fmt.Errorf("failed to write stream: %w", err)) // 注意:这里可能无法设置错误状态码,因为头部可能已经发送 @@ -737,7 +737,7 @@ func (c *Context) SetRespBodyFile(code int, filePath string) { c.Writer.WriteHeader(code) // 将文件内容写入响应体 - _, err = copyb.Copy(c.Writer, file) + _, err = iox.Copy(c.Writer, file) if err != nil { c.AddError(fmt.Errorf("failed to write file %s to response: %w", cleanPath, err)) // 注意:这里可能无法设置错误状态码,因为头部可能已经发送 diff --git a/go.mod b/go.mod index b956fe8..6b14b15 100644 --- a/go.mod +++ b/go.mod @@ -3,13 +3,14 @@ module github.com/infinite-iroha/touka go 1.24.4 require ( - github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6 + github.com/WJQSERVER-STUDIO/go-utils/iox v0.0.2 github.com/WJQSERVER-STUDIO/httpc v0.8.1 github.com/fenthope/reco v0.0.3 github.com/go-json-experiment/json v0.0.0-20250714165856-be8212f5270d ) require ( + github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect golang.org/x/net v0.42.0 // indirect ) diff --git a/go.sum b/go.sum index 7495b44..0302b36 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6 h1:/50VJYXd6jcu+p5BnEBDyiX0nAyGxas1W3DCnrYMxMY= github.com/WJQSERVER-STUDIO/go-utils/copyb v0.0.6/go.mod h1:FZ6XE+4TKy4MOfX1xWKe6Rwsg0ucYFCdNh1KLvyKTfc= +github.com/WJQSERVER-STUDIO/go-utils/iox v0.0.2 h1:AiIHXP21LpK7pFfqUlUstgQEWzjbekZgxOuvVwiMfyM= +github.com/WJQSERVER-STUDIO/go-utils/iox v0.0.2/go.mod h1:mCLqYU32bTmEE6dpj37MKKiZgz70Jh/xyK9vVbq6pok= github.com/WJQSERVER-STUDIO/httpc v0.8.1 h1:/eG8aYKL3WfQILIRbG+cbzQjPkNHEPTqfGUdQS5rtI4= github.com/WJQSERVER-STUDIO/httpc v0.8.1/go.mod h1:mxXBf2hqbQGNHkVy/7wfU7Xi2s09MyZpbY2hyR+4uD4= github.com/fenthope/reco v0.0.3 h1:RmnQ0D9a8PWtwOODawitTe4BztTnS9wYwrDbipISNq4=