我如何能够返回多重响应

时间:2017-07-22 20:50:53

标签: http go httpresponse

我已经阅读过有关异步响应的内容,并且, 我试图使用golang返回多响应, 但我不知道如何做到这一点。

我的例子:

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", multiResponse)
    http.ListenAndServe(":8080", nil)
}

func multiResponse(w http.ResponseWriter, r *http.Request) {
    go func() {
        resp, err := http.Get("https://www.google.com.eg/search?q=hello")
        if err != nil {
            log.Println(err)
        }

        body, err := ioutil.ReadAll(resp.Body)
        if err != nil {
            log.Println(err)
        }

        // w.WriteHeader(http.StatusOK)
        // w.Write(body)
        fmt.Fprintln(w, string(body))

        resp.Body.Close()

        fmt.Println("done...")
    }()

    w.WriteHeader(http.StatusAccepted)
}

是否有任何例子可以理解异步响应?

修改
我的意思是多重反应,
当我收到客户的要求时,我会立即发送StatusAccepted, 在另一个goroutine其他流程工作中,然后在完成发送StatusOK一些数据之后。

0 个答案:

没有答案