为了账号安全,请及时绑定邮箱和手机立即绑定

golang:http.get() 返回

golang:http.get() 返回

Go
芜湖不芜 2021-12-07 17:17:17
好吧,是的,我是 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,我得到了两个数字序列的结果。所以基本上我如何将查询的“结果”从一个函数返回到原始函数,以便可以解析和使用它?我讨厌重复代码,因此试图将重复代码保留在一个函数中,并在需要时调用它。
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

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


func myfunction(site string) *http.Response {

        resp, err := client.Get(site) 

        if err != nil {

                log.Fatal(err)

        }


        return resp

}


查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 295 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信