github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/http/README.md (about) 1 ## http 2 http包是简化封装解析,在公司这边有标准的返回结构,但是我们很多时候只使用其中的data部分,很多时候自己需要判断并解析,这里对这个做了简单的工具封装 3 ```json 4 { 5 "code": 0, 6 "message": "yy", 7 "data": "xx" 8 } 9 ``` 10 11 ### 示例 12 ```go 13 func TestGetSimple(t *testing.T) { 14 // {"code":"success","data":"ok","message":"成功"} 15 data, err := http.GetSimple("http://localhost:8082/api/api/app/sample/test/get") 16 if err != nil { 17 fmt.Errorf(err.Error()) 18 return 19 } 20 fmt.Println(string(data)) 21 22 // "ok" 23 data, err = http.GetSimpleOfStandard("http://localhost:8082/api/api/app/sample/test/get") 24 if err != nil { 25 fmt.Errorf(err.Error()) 26 return 27 } 28 fmt.Println(string(data)) 29 } 30 ``` 31 32 ### 配置 33 ```yaml 34 # http的配置 35 base: 36 http: 37 # 通用的超时配置,链接、重定向、响应的所有超时时间;默认0,就是不超时 38 timeout: 5s 39 transport: 40 # 握手的最长时间 41 tls-handshake-timeout: 10s 42 # 禁用HTTP keep alives,且将仅对单个HTTP请求使用到服务器的连接。 这与类似命名的TCP keep-alives无关 43 disable-keep-alives: true 44 # 禁用gzip的压缩标示 45 disable-compression: true 46 # 最大空闲连接数 47 max-idle-conns: 100 48 # 每个主机最大空闲连接数 49 max-idle-conns-per-host: 100 50 # 每个主机最大连接数 51 max-conns-per-host: 100 52 # 连接在关闭之前保持空闲的最长时间 53 idle-conn-timeout: 90s 54 # 完全写入请求后等待服务器响应标头的时间 55 response-header-timeout: 15s 56 # 在请求具有“Expect:100 continue”标头时,在完全写入请求标头后等待服务器的第一个响应标头的时间 57 expect-continue-timeout: 1s 58 # 指定服务器响应标头中允许的响应字节数限制 59 max-response-header-bytes: 1024 60 # 写入缓冲区的大小;如果为零,则使用默认值(当前为4KB) 61 write-buffer-size: 4096 62 # 从传输读取时使用的读取缓冲区的大小。如果为零,则使用默认值(当前为4KB) 63 read-buffer-size: 4096 64 # 使用Dial、DialTLS或DialContext func或TLSClientConfig字段时候,默认关闭http2;如果想要开启,则请设置为true 65 force-attempt-HTTP2: true 66 # 用于创建未加密TCP连接 67 dial-context: 68 # 超时是拨号等待连接完成的最长时间。如果同时设置了Deadline,则可能会更早失败。 默认值为无超时。 69 timeout: 30s 70 # 超时的绝对时间 71 # deadline: "2023-02-13" 72 # 活动网络连接的保持活动探测之间的间隔;默认15s 73 keep-alive: 30s 74 ``` 75 如下是http的默认配置 Transport `DefaultTransport` 76 ```yaml 77 base: 78 http: 79 transport: 80 # 使用Dial、DialTLS或DialContext func或TLSClientConfig字段时候,默认关闭http2;如果想要开启,则请设置为true 81 force-attempt-HTTP2: true 82 # 最大空闲连接数 83 max-idle-conns: 100 84 # 连接在关闭之前保持空闲的最长时间 85 idle-conn-timeout: 90s 86 # 握手的最长时间 87 tls-handshake-timeout: 10s 88 # 在请求具有“Expect:100 continue”标头时,在完全写入请求标头后等待服务器的第一个响应标头的时间 89 expect-continue-timeout: 1s 90 # 用于创建未加密TCP连接 91 dial-context: 92 # 超时是拨号等待连接完成的最长时间。如果同时设置了Deadline,则可能会更早失败。 默认值为无超时。 93 timeout: 30s 94 # 活动网络连接的保持活动探测之间的间隔;默认15s 95 keep-alive: 30s 96 ```