golang:http.get()返回

时间:2016-02-02 04:22:09

标签: function go

好吧所以我是golang的新手,但不是编码,我对功能与golang一起工作的方式感到困惑,在这两周内我有9次或10次我有一个问题是相关的功能......我不懒,我一直在寻找能激励我的例子,但它们都属于一个主要的功能。 我试图在一个函数中使用http.get,并且每次我们需要使用http.get时,许多其他函数都会调用这个函数,所以我们不要一遍又一遍地重复代码。例如:(这不是实际的代码)

func myfunction(site) []byte {
        resp, err := client.Get(site) // client is because Im tunneling thing on a proxy TOR and had to create some helpers.. but this is working ok.

        return resp
}

func magic(staff) string {
        // do things and create websiteurl with staff and onther contants
        site := myfunction(website)
        contents, err := html.Parse(site.Body)
        //....
        //....
        return  result
}

main() {

        //... stuff happens :)
}

好的错误是因为我不断改变现状并得到不同的错误。或者根本没有...但是没有结果..

不能在返回参数中使用resp.Body(类型io.ReadCloser)作为类型[]byte ./gobot.go:71:不能使用site(type [] byte)作为html.Parse参数中的类型io.Reader:

当我第一次使用Site.Body时,我没有收到错误 解析时什么都不做......我把几个调试打印到STDOUT,我得到了两个数字序列的结果。

所以基本上如何返回"结果"我的查询从一个函数到原始,所以它可以解析和使用? 我讨厌重复代码,所以试图将重复的代码保存在一个函数中,让它在需要时调用它。

感谢

1 个答案:

答案 0 :(得分:1)

myfunction的返回类型错误。它应该返回[]byte而不是*http.Response

func myfunction(site string) *http.Response {
        resp, err := client.Get(site) 
        if err != nil {
                log.Fatal(err)
        }

        return resp
}