老熟女激烈的高潮_日韩一级黄色录像_亚洲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
主站蜘蛛池模板: 无套内射视频囯产 | 日本一区二区在线免费观看 | 国产一级一国产一级毛片 | 51cao在线观看 | 欧美在线看| 影音先锋人妻啪啪AV资源网站 | 精品国产aⅴ一区二区 | 三级影院在线观看 | www.嫩草影院 | 国产超薄肉丝袜在线 | 好男人中文资源在线观看 | 国产一区二区三区视频在线播放 | 蜜臀av999无码精品国产专区 | 久久久久久久久久亚洲 | www.色悠悠.com| 乳尖乱颤娇喘连连A片在线观看 | 九九专区一线二线三线 | 人妖天堂狠狠ts人妖天堂狠狠 | 久久男人AV资源网站 | 夜夜调教禁脔欢爱h | 年轻的母亲理论片 | 亚洲亚洲中文字幕无线码 | 国产精品爽黄69天堂a | 午夜精品成人 | 中国女人和老外的毛片 | 久久婷婷网站 | 日本中文字幕在线一区 | 国产精品自拍区 | 不卡一区在线观看 | 亚洲成人91 | 欧美日韩精品人妻狠狠躁免费视频 | 女人高潮潮叫免费视频 | 91精品国产?合久久久欧美 | 国产一女三男实拍视频 | 日本免费一级淫片a级中文字幕 | 久99久人碰人视频在线 | 少妇人妻中文字幕HD | 最近中文字幕mv2018在线高清 | 性满足bbwbbwbbw| 免费看国产一级特黄aaaa大片 | 无人在线视频观看免费 |