猿问

golang:http.get() 返回

好吧,是的,我是 golang 的新手,但不是编码,我对函数与 golang 一起工作的方式有点困惑,在这 2 周内,我有 9 次或 10 次我遇到了与函数有关的问题。 . 我不懒惰 我到处寻找例子来激励我,但它们都在一个 main() 函数下。我试图在一个函数中使用 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:不能使用站点(类型[]byte)作为html.Parse参数中的io.Reader类型:


当我第一次没有遇到错误时,Site.Body 在解析时不会做任何事情......我把几个调试打印到 STDOUT,我得到了两个数字序列的结果。


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


芜湖不芜
浏览 296回答 1
1回答

九州编程

myfunction有错误的返回类型。而不是[]byte它应该返回*http.Response。func myfunction(site string) *http.Response {        resp, err := client.Get(site)         if err != nil {                log.Fatal(err)        }        return resp}
随时随地看视频慕课网APP

相关分类

Go
我要回答