老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網站建設、域名注冊、服務器等服務

golanghttp連接復用方法

server端

安溪ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

golang httpserver 默認開啟keepalive連接復用選項

handler函數需要完整讀body數據,構造返回消息,否則當數據不能一次發(fā)送完成時,連接復用就會失效。

示例如下

package main
 
import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"os"
	"strconv"
	"strings"
	"time"
)
 
func connHandler(w http.ResponseWriter, r *http.Request) {
	// parse
	r.ParseForm()
	response_time := r.Header.Get("sleep-time")
	// <= NOTE
	if _, err := ioutil.ReadAll(r.Body); err != nil {
		http.Error(w, err.Error(), 500)
		return
	}
	defer r.Body.Close()
	// sleep for some time
	resp_time := 1
	if response_time != "" {
		ms, _ := strconv.ParseFloat(response_time, 64)
		resp_time = (int)(ms * 1000)
	}
	time.Sleep(time.Duration(resp_time) * time.Millisecond)
	// parepare response
	status := 200
	body := ""
	w.Header().Set("Content-Type", "text/plain")
	w.Header().Set("Content-Length", strconv.Itoa(len(body)))
	w.WriteHeader(status)
	w.Write([]byte(body))
}
 
func main() {
	http.HandleFunc("/", connHandler)
	if err := http.ListenAndServe(":server_port", nil); err != nil {
		log.Fatal("ListenAndServe: ", err)
	}
}

client 端

客戶端需要構建全局client,完整讀 response body,并關閉body

package main

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

var (
  httpClient *http.Client
)

const (
  MaxIdleConnections int = 20
  RequestTimeout   int = 30
)

// init HTTPClient
func init() {
  httpClient = createHTTPClient()
}

// createHTTPClient for connection re-use
func createHTTPClient() *http.Client {
  client := &http.Client{
   Transport: &http.Transport{
      MaxIdle  ConnsPerHost: MaxIdleConnections,
 },
 Timeout: time.Duration(RequestTimeout) * time.Second,
  }
  return client
}

func conn_reuse_post(conn_reuse_times int) {
  var endPoint string = "http://server_ip:server_port/"
  data := []byte{}
  // fill data 
  for i := 0; i < conn_reuse_times; i++ {
 // use global httpClient to send request
 resp, err := httpClient.Post(endPoint, "application/x-www-form-urlencoded", bytes.NewBuffer([]byte(data)))
 fmt.Println(resp)
 if err != nil {
   log.Println("err", err)
   return
 }
 io.Copy(ioutil.Discard, resp.Body) // <= NOTE
 resp.Body.Close()  // <= NOTE
  }
}

func main() {
  conn_reuse_post(5)
}

以上這篇golang http連接復用方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯。


本文標題:golanghttp連接復用方法
網頁路徑:http://www.xueling.net.cn/article/jpgeci.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 抖音奶片无罩子52秒回放 | 国产精品一区二区免费在线观看 | 久久婷婷五月综合色国产 | 欧美成人一区二区三区在线观看 | 国产一级特黄真人毛片 | 中国一级特黄真人毛片免费观看 | 成人性生交A片免费看潘金莲 | 亚洲色大成网站WWW看下面 | 久久91精品国产91久久久 | 欧美黑人巨大久久久精品一区小蓝 | 性一交一乱一伧老太 | 福利精品视频 | 香蕉免费网站 | 萍萍的性荡生活第六季 | 日韩亚射吧 | 波多野结衣连续高潮中出 | 久久夜色精品亚洲噜噜国产mv | 蜜芽AⅤ色欲AV浪潮夜夜嗨 | 中文字幕第4页 | 99国产99| 天堂久久精品 | 精品人妻无码一区二区三区四区无码 | 网友自拍露脸国语对白 | 亚洲三级在线视频 | 亚洲国产综合在线观看 | 免费国产黄网站在线观看动图 | 日本在线视频播放 | 日本一区二区视频 | 欧洲女人牲交视频免费 | 福利社一区二区 | 性一交一乱一乱一视频 | 乱人伦xxxx国语对白 | 91网站网址 | 日本高清不卡的在线 | 久久av福利 | 国产精品国产免费无码专区不卡 | 国产一级毛片一级 | 视频日韩 | 麻豆免费在线观看 | 秘书双乳上下晃动呻吟 | 青青青国产在线视频 |