func justRun(userinfo userInfo) bool {
r, _ := http.Get("http://localhost:8080/?imeicode=" + userinfo.ImeiCode)
var w []byte
if r != nil {
w, _ = ioutil.ReadAll(r.Body)
_ = r.Body.Close()
} else {
time.Sleep(5 * time.Second)
if r != nil {
w, _ = ioutil.ReadAll(r.Body)
_ = r.Body.Close()
} else {
r, _ := http.Get("http://localhost:8080/?imeicode=" + userinfo.ImeiCode)
time.Sleep(5 * time.Second)
if r != nil {
w, _ = ioutil.ReadAll(r.Body)
_ = r.Body.Close()
}
}
}
if len(w) == 4 {
return true
} else {
return false
}
}
看了源码发现 Get 调用的 NewRequest 方法
但是小白表示没发现什么异常呀 晕了
这个 get 请求的地址是同服务器的 代码如下
func handle(w http.ResponseWriter, r *http.Request) {
defer r.Body.Close()
_ = r.ParseForm()
if runCode(r.Form["imeicode"][0]) {
_, _ = Fprint(w, "true")
} else {
_, _ = Fprint(w, "false")
}
}
runCode 的执行时间大概在 1s 以内 不会超过 2 秒
返回值也是 bool 型
还有一直没搞懂的是 r.Body.Close()这个到底是干啥用的
因为服务端调用这个之后 朝着 w 写东西 客户端也能收到
客户端调用这个之后 貌似什么都不会发生?