本文整理汇总了Golang中util.NewTimeoutClient函数的典型用法代码示例。如果您正苦于以下问题:Golang NewTimeoutClient函数的具体用法?Golang NewTimeoutClient怎么用?Golang NewTimeoutClient使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewTimeoutClient函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: AnalyzeKLinePeroid
func (w *Huobi) AnalyzeKLinePeroid(symbol string, peroid int) (ret bool, records []Record) {
ret = false
var huobisymbol string
if symbol == "btc_cny" {
huobisymbol = "huobibtccny"
} else {
huobisymbol = "huobiltccny"
logger.Fatal("huobi does not support LTC by now, wait for huobi provide it.", huobisymbol)
return
}
req, err := http.NewRequest("GET", fmt.Sprintf(Config["hb_kline_url"], peroid), nil)
if err != nil {
logger.Fatal(err)
return
}
req.Header.Set("Referer", Config["hb_base_url"])
req.Header.Add("Connection", "keep-alive")
req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36")
logger.Traceln(req)
c := util.NewTimeoutClient()
logger.Tracef("HTTP req begin AnalyzeKLinePeroid")
resp, err := c.Do(req)
logger.Tracef("HTTP req end AnalyzeKLinePeroid")
if err != nil {
logger.Traceln(err)
return
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
logger.Tracef("HTTP returned status %v", resp)
return
}
var body string
contentEncoding := resp.Header.Get("Content-Encoding")
logger.Tracef("HTTP returned Content-Encoding %s", contentEncoding)
logger.Traceln(resp.Header.Get("Content-Type"))
switch contentEncoding {
case "gzip":
body = util.DumpGZIP(resp.Body)
default:
bodyByte, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Errorln("read the http stream failed")
return
} else {
body = string(bodyByte)
}
}
ioutil.WriteFile(fmt.Sprintf("cache/hbKLine_%03d.data", peroid), []byte(body), 0644)
return analyzePeroidLine(fmt.Sprintf("cache/hbKLine_%03d.data", peroid))
}
示例2: httpRequest
func (w *HuobiTrade) httpRequest(pParams map[string]string) (string, error) {
v := url.Values{}
for key, val := range pParams {
v.Add(key, val)
}
req, err := http.NewRequest("POST", Config["api_url"], strings.NewReader(v.Encode()))
if err != nil {
logger.Fatal(err)
return "", err
}
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
req.Header.Set("Referer", "https://www.huobi.com/")
req.Header.Add("Connection", "keep-alive")
req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36")
logger.Traceln(req)
c := util.NewTimeoutClient()
logger.Tracef("HTTP req begin HuobiTrade")
resp, err := c.Do(req)
logger.Tracef("HTTP req end HuobiTrade")
if err != nil {
logger.Fatal(err)
return "", err
}
defer resp.Body.Close()
logger.Tracef("api_url resp StatusCode=%v", resp.StatusCode)
logger.Tracef("api_url resp=%v", resp)
if resp.StatusCode == 200 {
var body string
contentEncoding := resp.Header.Get("Content-Encoding")
logger.Tracef("HTTP returned Content-Encoding %s", contentEncoding)
logger.Traceln(resp.Header.Get("Content-Type"))
switch contentEncoding {
case "gzip":
body = DumpGZIP(resp.Body)
default:
bodyByte, _ := ioutil.ReadAll(resp.Body)
body = string(bodyByte)
ioutil.WriteFile("cache/api_url.json", bodyByte, 0644)
}
logger.Traceln(body)
return body, nil
} else {
logger.Tracef("resp %v", resp)
}
return "", nil
}
示例3: getOrderBook
func (w *Okcoin) getOrderBook(symbol string) (ret bool, orderBook OrderBook) {
//init to false
ret = false
req, err := http.NewRequest("GET", fmt.Sprintf(Config["ok_depth_url"], symbol), nil)
if err != nil {
logger.Fatal(err)
return
}
req.Header.Set("Referer", Config["ok_base_url"])
req.Header.Add("Connection", "keep-alive")
req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36")
logger.Traceln(req)
c := util.NewTimeoutClient()
logger.Tracef("HTTP req begin getOrderBook")
resp, err := c.Do(req)
logger.Tracef("HTTP req end getOrderBook")
if err != nil {
logger.Traceln(err)
return
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
logger.Errorf("HTTP returned status %v", resp)
return
}
var body string
contentEncoding := resp.Header.Get("Content-Encoding")
logger.Tracef("HTTP returned Content-Encoding %s", contentEncoding)
switch contentEncoding {
case "gzip":
body = util.DumpGZIP(resp.Body)
default:
bodyByte, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Errorln("read the http stream failed")
return
} else {
body = string(bodyByte)
ioutil.WriteFile("cache/okdepth.json", bodyByte, 0644)
}
}
return w.analyzeOrderBook(body)
}
示例4: DoJSON
func (p *Request) DoJSON() (*Json, error) {
j, _ := NewJson([]byte(""))
var req *http.Request
var err error
if p.Method == "POST" {
req, err = http.NewRequest(p.Method, p.Uri, strings.NewReader(p.EncodeParams))
} else {
req, err = http.NewRequest(p.Method, p.Uri+"?"+p.EncodeParams, nil)
}
if err != nil {
logger.Fatal(err)
return j, err
}
if p.Method == "POST" {
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
}
req.Header.Add("Connection", "keep-alive")
req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36")
logger.Traceln(req)
c := util.NewTimeoutClient()
logger.Tracef("HTTP req begin HuobiTrade")
resp, err := c.Do(req)
logger.Tracef("HTTP req end HuobiTrade")
if err != nil {
logger.Fatal(err)
return j, err
}
defer resp.Body.Close()
logger.Tracef("api_url resp StatusCode=%v", resp.StatusCode)
logger.Tracef("api_url resp=%v", resp)
if resp.StatusCode == 200 {
var body string
contentEncoding := resp.Header.Get("Content-Encoding")
logger.Tracef("HTTP returned Content-Encoding %s", contentEncoding)
logger.Traceln(resp.Header.Get("Content-Type"))
switch contentEncoding {
case "gzip":
body = util.DumpGZIP(resp.Body)
default:
bodyByte, _ := ioutil.ReadAll(resp.Body)
body = string(bodyByte)
ioutil.WriteFile("cache/api_url.json", bodyByte, 0644)
}
logger.Traceln(body)
return NewJson([]byte(body))
} else {
logger.Tracef("resp %v", resp)
}
return j, nil
}
示例5: AnalyzeKLinePeroid
/*
SEE DOC:
TRADE API
https://www.okcoin.com/t-1000097.html
行情API
https://www.okcoin.com/shequ/themeview.do?tid=1000052¤tPage=1
//non-official API :P
K线数据step单位为second
https://www.okcoin.com/kline/period.do?step=60&symbol=okcoinbtccny&nonce=1394955131098
https://www.okcoin.com/kline/trades.do?since=10625682&symbol=okcoinbtccny&nonce=1394955760557
https://www.okcoin.com/kline/depth.do?symbol=okcoinbtccny&nonce=1394955767484
https://www.okcoin.com/real/ticker.do?symbol=0&random=61
//old kline for btc
日数据
https://www.okcoin.com/klineData.do?type=3&marketFrom=0
5分钟数据
https://www.okcoin.com/klineData.do?type=1&marketFrom=0
/for ltc
https://www.okcoin.com/klineData.do?type=3&marketFrom=3
*/
func (w *Okcoin) AnalyzeKLinePeroid(symbol string, peroid int) (ret bool, records []Record) {
var oksymbol string
if symbol == "btc_cny" {
oksymbol = "okcoinbtccny"
} else {
oksymbol = "okcoinltccny"
}
ret = false
now := time.Now().UnixNano() / 1000000
req, err := http.NewRequest("GET", fmt.Sprintf(Config["ok_kline_url"], 60*peroid, oksymbol, now), nil)
if err != nil {
logger.Fatal(err)
return
}
req.Header.Set("Referer", Config["ok_base_url"])
req.Header.Add("Connection", "keep-alive")
req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36")
logger.Traceln(req)
c := util.NewTimeoutClient()
logger.Tracef("okHTTP req begin")
resp, err := c.Do(req)
logger.Tracef("okHTTP req end")
if err != nil {
logger.Traceln(err)
return
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
logger.Tracef("HTTP returned status %v", resp)
return
}
var body string
contentEncoding := resp.Header.Get("Content-Encoding")
logger.Tracef("HTTP returned Content-Encoding %s", contentEncoding)
logger.Traceln(resp.Header.Get("Content-Type"))
switch contentEncoding {
case "gzip":
body = util.DumpGZIP(resp.Body)
default:
bodyByte, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Errorln("read the http stream failed")
return
} else {
body = string(bodyByte)
ioutil.WriteFile(fmt.Sprintf("cache/okTradeKLine_%03d.data", peroid), bodyByte, 0644)
}
}
return analyzePeroidLine(body)
}
示例6: AnalyzeKLineMinute
func (w *Huobi) AnalyzeKLineMinute(symbol string) (ret bool) {
var huobisymbol string
if symbol == "btc_cny" {
huobisymbol = "huobibtccny"
} else {
huobisymbol = "huobiltccny"
logger.Fatal("huobi does not support LTC by now, wait for huobi provide it.", huobisymbol)
return false
}
req, err := http.NewRequest("GET", Config["trade_fenshi"], nil)
if err != nil {
logger.Fatal(err)
}
req.Header.Set("Referer", Config["trade_flash_url"])
req.Header.Add("Connection", "keep-alive")
req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36")
logger.Traceln(req)
c := util.NewTimeoutClient()
logger.Tracef("HTTP req begin AnalyzeKLineMinute")
resp, err := c.Do(req)
logger.Tracef("HTTP req end AnalyzeKLineMinute")
if err != nil {
logger.Traceln(err)
return false
}
defer resp.Body.Close()
if resp.StatusCode == 200 {
var body string
contentEncoding := resp.Header.Get("Content-Encoding")
logger.Tracef("HTTP returned Content-Encoding %s", contentEncoding)
switch contentEncoding {
case "gzip":
body = DumpGZIP(resp.Body)
default:
bodyByte, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Errorln("read the http stream failed")
return false
} else {
body = string(bodyByte)
ioutil.WriteFile(fmt.Sprintf("cache/TradeKLine_minute.data"), bodyByte, 0644)
}
}
logger.Traceln(resp.Header.Get("Content-Type"))
ret := strings.Contains(body, "您需要登录才能继续")
if ret {
logger.Traceln("您需要登录才能继续")
return false
} else {
return w.analyzeMinuteLine(fmt.Sprintf("cache/TradeKLine_minute.data"), body)
}
} else {
logger.Tracef("HTTP returned status %v", resp)
}
return false
}