sport_rec_demo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

52 lines
1007 B

package main
import (
"bytes"
"encoding/json"
"errors"
"log"
"net/http"
"time"
)
var httpClient *http.Client
var fakeClient = false
func httpPost(url string, data interface{}) error {
log.Println("-> POST", url)
if fakeClient {
//log.Println("httpPost:data> fake client ")
return nil
}
if bs, e := json.Marshal(data); nil != e {
return e
} else if resp, e := httpClient.Post(url, "application/json", bytes.NewBuffer(bs)); nil != e {
return e
} else if resp.StatusCode != http.StatusOK {
return errors.New("invalid resp status: " + resp.Status)
} else {
return nil
}
}
func httpGet(url string, resp interface{}) error {
log.Println("-> GET", url)
return nil
}
func httpPostEx(url string, data interface{}, retries int) error {
var err error
for i := 0; i < retries; i++ {
if err = httpPost(url, data); nil != err {
log.Println("-> >>", err)
time.Sleep(1 * time.Second)
} else {
return nil
}
}
return err
}
func init() {
httpClient = http.DefaultClient
}