doutan1875 2016-02-02 04:22
浏览 725
已采纳

golang:http.get()返回

ok so yes im new to golang, but not to coding, I'm a bit confused with the way functions are working with golang, in this 2 weeks I have 9 times out or 10 I had an issue it was related to funtions... I'm no lazy I have search all over for examples to inspire me, but they are all under one main() funtion. I'm trying to have a http.get in one funtion and many other functions call this funtion everytime we need to use http.get so we dont repeat code over and over.. example:(this is not the actual code)

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 :)
}

well the error is for example because I keep changing things around and getting different errors. or not at all.. but then no result..

cannot use resp.Body (type io.ReadCloser) as type []byte in return argument ./gobot.go:71: cannot use site (type []byte) as type io.Reader in argument to html.Parse:

when I do not get an error that is how I did it the first time the Site.Body will do nothing when parsing... I put a couple of debug prints to STDOUT and I had results like two sequence of numbers.

so basically how do I return a "result" of my query from one function to the original so it can then be parse and used? I hate to repeat code so trying to keep the repetitive code in one function and have it get it call when needed it.

thanks

  • 写回答

1条回答 默认 最新

  • dpo15099 2016-02-02 04:49
    关注

    myfunction has the wrong return type. Instead of []byte it should return *http.Response.

    func myfunction(site string) *http.Response {
            resp, err := client.Get(site) 
            if err != nil {
                    log.Fatal(err)
            }
    
            return resp
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)