1
gowk 2019-04-21 15:37:58 +08:00
支持一波。代码写的不错:)
|
2
uasier 2019-04-21 15:52:09 +08:00 via Android
支持
|
3
jinliming2 2019-04-21 16:45:50 +08:00 via iPhone
支持
请求方法还有 PATCH HEAD OPTION 之类的建议加一下 |
5
xinQing OP @jinliming2 嗯嗯,谢谢建议哈。主要平时就主要用 GET、POST、PUT、DELETE ; PATCH、HEAD、OPTION 不咋用,我后面加上
|
7
kidlj 2019-04-21 18:01:09 +08:00
很干净。喜欢了。
|
8
inframe 2019-04-21 18:02:03 +08:00 via Android
终于有人造这个轮子了.(:滑稽
|
9
newmind 2019-04-21 18:24:11 +08:00 1
插播一个正在用的
parnurzeal/gorequest: GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent ) https://github.com/parnurzeal/gorequest |
10
abel1989 2019-04-21 20:05:39 +08:00
写的不错。。。。
|
15
Allianzcortex 2019-04-22 11:05:30 +08:00 via iPhone
简洁漂亮
|
16
abel1989 2019-04-22 11:16:03 +08:00
不能 push 代码上去......
|
17
abel1989 2019-04-22 11:16:55 +08:00
// default client
var defaultClient = Client{} func (c *Client) Get(url string) *Client { c.url = url c.method = http.MethodGet return c } func (c *Client) Post(url string) *Client { c.url = url c.method = http.MethodPost return c } func (c *Client) Put(url string) *Client { c.url = url c.method = http.MethodPut return c } func (c *Client) Delete(url string) *Client { c.url = url c.method = http.MethodDelete return c } // Get: http `GET` 请求 func Get(url string) *Client { return defaultClient.Get(url) } // Post: http `POST` 请求 func Post(url string) *Client { return defaultClient.Post(url) } // Put: http `PUT` 请求 func Put(url string) *Client { return defaultClient.Put(url) } // Delete: http `DELETE` 请求 func Delete(url string) *Client { return defaultClient.Delete(url) } |
19
xkeyideal 2019-04-22 13:55:15 +08:00
这种东西等项目需要深度使用的时候,会发现目前没有一个第三方库能胜任的,还是需要自己写
1、重试 2、超时 3、keep-alive 只能说坑很多 |
20
xinQing OP @xkeyideal 这个有重试,超时,更完善: https://github.com/parnurzeal/gorequest
|
21
xinQing OP 如果大家想使用超时、KeepAlive 等功能,可以自定义 Client、Transport 替换 http 包 DefaultClient、DefaultTransport。
func customHttp() { client := &http.Client{ Transport: &Transport Timeout: 5 * time.Second, } text, err := requests.Request("https://github.com/xuanbo", "OPTIONS", client). Send(). Text() if err != nil { panic(err) } fmt.Println(text) } |
23
insert000 2019-04-22 15:15:32 +08:00
请问可以直接拿楼主的代码 嵌入到自己的项目中么?
|