![]() | 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 不咋用,我后面加上 |
![]() | nbsp; 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 ![]() 插播一个正在用的 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 请问可以直接拿楼主的代码 嵌入到自己的项目中么? |