Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go http请求后如何获取响应_Go_Goquery - Fatal编程技术网

Go http请求后如何获取响应

Go http请求后如何获取响应,go,goquery,Go,Goquery,我正在学习围棋,在这个领域我是一个真正的新手 当我试图复制一些值时,我面临一个问题 我正在做的是: 我想使用httpRequest在[response]中获得一些响应 之后,我想将存储的值保存在'origin.txt'作为响应 我想通过使用goquery包得到一个特定的值 ) 但在这种情况下,我可以从2)中得到我想要的值,但从3)中什么也得不到 首先,我认为问题在于,3)处的响应对象受到2)动作的影响。因为它是一个引用对象 所以我试着把它复制到另一个物体上,然后再做一次 origin := *r

我正在学习围棋,在这个领域我是一个真正的新手

当我试图复制一些值时,我面临一个问题

我正在做的是:

  • 我想使用httpRequest在[response]中获得一些响应
  • 之后,我想将存储的值保存在'origin.txt'作为响应
  • 我想通过使用goquery包得到一个特定的值
  • )

    但在这种情况下,我可以从2)中得到我想要的值,但从3)中什么也得不到

    首先,我认为问题在于,3)处的响应对象受到2)动作的影响。因为它是一个引用对象

    所以我试着把它复制到另一个物体上,然后再做一次

    origin := *response
    
    但是,我得到了和第一次一样的结果

    我该怎么办? 如何通过引用值将引用值分配给另一个引用值

    我应该为每次尝试请求两次吗?

    实际上,我看不出您在哪里使用2和3之间的共享资源

    然而,这句话不会给你带来多少好处。数据(
    response.Body
    )是一个
    io.ReadCloser
    ioutil.ReadAll()
    将使用并存储流中的所有数据。你只能这样做一次


    但是,数据存储在
    origin
    中。如果您需要另一个
    io.Reader
    来读取该数据(比如案例3),那么您可以将该字节片再次设置为
    io.Reader
    bytes.NewReader(origin)

    对不起。我改变了我的问题。。。很抱歉问题出在[响应]对象!很好,就像我当时建议的那样,使用
    字节。NewReader(origin)
    。这是一个很好的解决方案。使用您的解决方案[func NewReader(b[]字节)*Reader]这一点,我可以达到我的目的。谢谢!!!
    origin_ ,_:= ioutil.ReadAll(response.Body)
    f_, err := os.Create("origin.txt")
    f_.Write(origin_);
    
    doc, err := goquery.NewDocumentFromReader(response.Body)
    if err != nil {
        log.Fatal(err)
    }
    doc.Find(".className").Each(func(i int, s *goquery.Selection) {
        w.WriteString("============" + strconv.Itoa(i) + "============")
        s.Find("tr").Each(func(i int, s_ *goquery.Selection) {
        fmt.Println(s_.Text())
        w.WriteString(s_.Text())    
        })
    }
    
    origin := *response