duan2891 2016-07-20 13:27
浏览 44
已采纳

Golang:同步功能呼叫http发布请求

I need to call multiple URL at the same time. My functions get called at the same time (in milli seconds) but the moment I add a Http post request to the code it gets called one after the other. Below is the code:

Check(url1)
Check(url2)

func Check(xurl string) {

    nowstartx    := time.Now()
    startnanos   := nowstartx.UnixNano()
    nowstart := startnanos / 1000000
    fmt.Println(nowstart)

    json = {"name" : "test"}
    req, err := http.NewRequest("POST", xurl, bytes.NewBuffer(json))
    req.Header.Set("X-Custom-Header", "myvalue")
    req.Header.Set("Content-Type", "application/json")
    client := &http.Client{}
    resp, err := client.Do(req)

    if err != nil {
        panic(err)

    } else {
        defer resp.Body.Close()
        body, _ = ioutil.ReadAll(resp.Body)
    }

}

Appreciate help, I need to get the same time (in milliseconds) when I run the program.

  • 写回答

1条回答 默认 最新

  • doutuan4361 2016-07-20 21:34
    关注

    This is achieved by using Goroutines

    go Check(url1)
    go Check(url2)
    
    func Check(xurl string) {
    
        nowstartx    := time.Now()
        startnanos   := nowstartx.UnixNano()
        nowstart := startnanos / 1000000
        fmt.Println(nowstart)
    
        json = {"name" : "test"}
        req, err := http.NewRequest("POST", xurl, bytes.NewBuffer(json))
        req.Header.Set("X-Custom-Header", "myvalue")
        req.Header.Set("Content-Type", "application/json")
        client := &http.Client{}
        resp, err := client.Do(req)
    
        if err != nil {
            panic(err)
    
        } else {
            defer resp.Body.Close()
            body, _ = ioutil.ReadAll(resp.Body)
        }
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看