Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xpkg
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
屠思豪
xpkg
Commits
81dc6145
提交
81dc6145
authored
7月 08, 2025
作者:
mooncake9527
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
httpcli print cost
上级
6911bad0
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
23 行增加
和
124 行删除
+23
-124
httpcli.go
httpcli/httpcli.go
+23
-124
没有找到文件。
httpcli/httpcli.go
浏览文件 @
81dc6145
...
@@ -22,6 +22,7 @@ import (
...
@@ -22,6 +22,7 @@ import (
const
defaultTimeout
=
30
*
time
.
Second
const
defaultTimeout
=
30
*
time
.
Second
type
Request
struct
{
type
Request
struct
{
cli
*
http
.
Client
url
string
url
string
method
string
method
string
headers
map
[
string
]
string
headers
map
[
string
]
string
...
@@ -44,8 +45,25 @@ type Response struct {
...
@@ -44,8 +45,25 @@ type Response struct {
Header
http
.
Header
Header
http
.
Header
}
}
// ----------------------------------- Request way 1 -----------------------------------
type
Client
struct
{
client
*
http
.
Client
}
func
NewClient
(
cli
*
http
.
Client
)
*
Client
{
return
&
Client
{
client
:
cli
,
}
}
func
(
x
*
Client
)
NewRequest
()
*
Request
{
return
&
Request
{
cli
:
x
.
client
,
response
:
&
Response
{},
}
}
// ----------------------------------- Request way 1 -----------------------------------
//
// New create a new Request
// New create a new Request
func
New
()
*
Request
{
func
New
()
*
Request
{
return
&
Request
{
return
&
Request
{
...
@@ -289,7 +307,10 @@ func (x *Request) send(ctx context.Context) {
...
@@ -289,7 +307,10 @@ func (x *Request) send(ctx context.Context) {
}
}
func
(
x
*
Request
)
pushDo
(
ctx
context
.
Context
)
{
func
(
x
*
Request
)
pushDo
(
ctx
context
.
Context
)
{
client
:=
http
.
Client
{
Timeout
:
x
.
timeout
}
client
:=
x
.
cli
if
client
==
nil
{
client
=
&
http
.
Client
{
Timeout
:
x
.
timeout
}
}
var
rsp
*
http
.
Response
var
rsp
*
http
.
Response
rsp
,
x
.
err
=
client
.
Do
(
x
.
request
)
rsp
,
x
.
err
=
client
.
Do
(
x
.
request
)
if
x
.
err
!=
nil
{
if
x
.
err
!=
nil
{
...
@@ -403,128 +424,6 @@ func WithTimeout(t time.Duration) Option {
...
@@ -403,128 +424,6 @@ func WithTimeout(t time.Duration) Option {
}
}
}
}
//
//// Get request, return custom json format
//func Get(ctx context.Context, result interface{}, urlStr string, opts ...Option) error {
// o := defaultOptions()
// o.apply(opts...)
// return gDo(ctx, "GET", result, urlStr, o.params, o.headers, o.timeout)
//}
//
//// Delete request, return custom json format
//func Delete(ctx context.Context, result interface{}, urlStr string, opts ...Option) error {
// o := defaultOptions()
// o.apply(opts...)
// return gDo(ctx, "DELETE", result, urlStr, o.params, o.headers, o.timeout)
//}
//
//// Post request, return custom json format
//func Post(ctx context.Context, result interface{}, urlStr string, body interface{}, opts ...Option) error {
// o := defaultOptions()
// o.apply(opts...)
// return do(ctx, "POST", result, urlStr, body, o.params, o.headers, o.timeout)
//}
//
//// Put request, return custom json format
//func Put(ctx context.Context, result interface{}, urlStr string, body interface{}, opts ...Option) error {
// o := defaultOptions()
// o.apply(opts...)
// return do(ctx, "PUT", result, urlStr, body, o.params, o.headers, o.timeout)
//}
//
//// Patch request, return custom json format
//func Patch(ctx context.Context, result interface{}, urlStr string, body interface{}, opts ...Option) error {
// o := defaultOptions()
// o.apply(opts...)
// return do(ctx, "PATCH", result, urlStr, body, o.params, o.headers, o.timeout)
//}
//
//var requestErr = func(err error) error { return fmt.Errorf("request error, err=%v", err) }
//var jsonParseErr = func(err error) error { return fmt.Errorf("json parsing error, err=%v", err) }
//var notOKErr = func(resp *Response) error {
// body, err := resp.ReadBody()
// if err != nil {
// return err
// }
// if len(body) > 500 {
// body = append(body[:500], []byte(" ......")...)
// }
// return fmt.Errorf("statusCode=%d, body=%s", resp.StatusCode, body)
//}
//
//func do(ctx context.Context, method string, result interface{}, urlStr string, body interface{}, params KV, headers map[string]string, timeout time.Duration) error {
// if result == nil {
// return fmt.Errorf("'result' can not be nil")
// }
//
// req := &Request{}
// req.SetURL(urlStr)
// req.SetContentType("application/json")
// req.SetParams(params)
// req.SetHeaders(headers)
// req.SetBody(body)
// req.SetTimeout(timeout)
//
// var resp *Response
// var err error
// switch method {
// case "POST":
// resp, err = req.POST(ctx)
// case "PUT":
// resp, err = req.PUT(ctx)
// case "PATCH":
// resp, err = req.PATCH(ctx)
// }
// if err != nil {
// return requestErr(err)
// }
// defer resp.Body.Close() //nolint
//
// if resp.StatusCode != 200 {
// return notOKErr(resp)
// }
//
// err = resp.BindJSON(result)
// if err != nil {
// return jsonParseErr(err)
// }
//
// return nil
//}
//
//func gDo(ctx context.Context, method string, result interface{}, urlStr string, params KV, headers map[string]string, timeout time.Duration) error {
// req := &Request{}
// req.SetURL(urlStr)
// req.SetParams(params)
// req.SetHeaders(headers)
// req.SetTimeout(timeout)
//
// var resp *Response
// var err error
// switch method {
// case "GET":
// resp, err = req.GET(ctx)
// case "DELETE":
// resp, err = req.DELETE(ctx)
// }
// if err != nil {
// return requestErr(err)
// }
// defer resp.Body.Close() //nolint
//
// if resp.StatusCode != 200 {
// return notOKErr(resp)
// }
//
// err = resp.BindJSON(result)
// if err != nil {
// return jsonParseErr(err)
// }
//
// return nil
//}
// StdResult standard return data
// StdResult standard return data
type
StdResult
struct
{
type
StdResult
struct
{
Code
int
`json:"code"`
Code
int
`json:"code"`
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论