The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
xinQing

requests for golang

  •  
  •   xinQing · Apr 21, 2019 · 5500 views
    This topic created in 2754 days ago, the information mentioned may be changed or developed.
    在学习 golang 的时候,写了一个 http 小工具,类似 python 的 requests。

    项目地址: https://github.com/xuanbo/requests

    希望大家可以多多支持,谢谢各位道友。
    24 replies  •  2019-04-25 10:24:44 +08:00
    gowk
    gowk
    Apr 21, 2019
    1
    支持一波。代码写的不错:)
    uasier
    uasier
    Apr 21, 2019 via Android
    2
    支持
    jinliming2
    jinliming2
    Apr 21, 2019 via iPhone
    3
    支持
    请求方法还有 PATCH HEAD OPTION 之类的建议加一下
    xinQing
    xinQing
    OP
    Apr 21, 2019
    4
    @gowk 谢谢哈
    xinQing
    xinQing
    OP
    Apr 21, 2019
    5
    @jinliming2 嗯嗯,谢谢建议哈。主要平时就主要用 GET、POST、PUT、DELETE ; PATCH、HEAD、OPTION 不咋用,我后面加上
    xinQing
    xinQing
    OP
    Apr 21, 2019
    6
    @uasier 嘻嘻,3q
    kidlj
    kidlj
    Apr 21, 2019
    7
    很干净。喜欢了。
    inframe
    inframe
    Apr 21, 2019 via Android
    8
    终于有人造这个轮子了.(:滑稽
    newmind
    newmind
    Apr 21, 2019❤️1
    9
    插播一个正在用的
    parnurzeal/gorequest: GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent )
    https://github.com/parnurzeal/gorequest
    abel1989
    abel1989
    Apr 21, 2019
    10
    写的不错。。。。
    xinQing
    xinQing
    OP
    Apr 22, 2019
    11
    @kidlj 只用了标准库,源码也才 200 行,比较适合初学者,有问题也可以自己改~
    xinQing
    xinQing
    OP
    Apr 22, 2019
    12
    @inframe 哈哈
    xinQing
    xinQing
    OP
    Apr 22, 2019
    13
    @abel1989 谢谢支持: )
    xinQing
    xinQing
    OP
    Apr 22, 2019
    14
    @newmind parnurzeal/gorequest 这给功能更强大,而且维护的人多,生产用比较放心:)
    Allianzcortex
    Allianzcortex
    Apr 22, 2019 via iPhone
    15
    简洁漂亮
    abel1989
    abel1989
    Apr 22, 2019
    16
    不能 push 代码上去......
    abel1989
    abel1989
    Apr 22, 2019
    17
    // 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)
    }
    xinQing
    xinQing
    OP
    Apr 22, 2019
    18
    @abel1989 你要 fork 代码之后,然后提交一个 pull request,我这边再合并过去哈
    xkeyideal
    xkeyideal
    Apr 22, 2019
    19
    这种东西等项目需要深度使用的时候,会发现目前没有一个第三方库能胜任的,还是需要自己写

    1、重试
    2、超时
    3、keep-alive

    只能说坑很多
    xinQing
    xinQing
    OP
    Apr 22, 2019
    20
    @xkeyideal 这个有重试,超时,更完善: https://github.com/parnurzeal/gorequest
    xinQing
    xinQing
    OP
    Apr 22, 2019
    21
    如果大家想使用超时、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)
    }
    xkeyideal
    xkeyideal
    Apr 22, 2019
    22
    @xinQing 这个库个人不推荐使用,issue 里有个比较严重的问题,不知道修复了没有
    insert000
    insert000
    Apr 22, 2019
    23
    请问可以直接拿楼主的代码 嵌入到自己的项目中么?
    xinQing
    xinQing
    OP
    Apr 25, 2019
    24
    @insert000 可以哈,没事的。如果在使用过程中有问题,希望可以反馈下,大家一起完善哈
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5220 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 00:18 · PVG 08:18 · LAX 16:18 · JFK 19:18
    ♥ Do have faith in what you're doing.