package
1.5.4
Repository: https://github.com/isyscore/isc-gobase.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

http

http包是简化封装解析,在公司这边有标准的返回结构,但是我们很多时候只使用其中的data部分,很多时候自己需要判断并解析,这里对这个做了简单的工具封装

{
  "code": 0,
  "message": "yy",
  "data": "xx"
}

示例

func TestGetSimple(t *testing.T) {
    // {"code":"success","data":"ok","message":"成功"}
    data, err := http.GetSimple("http://localhost:8082/api/api/app/sample/test/get")
    if err != nil {
        fmt.Errorf(err.Error())
        return
    }
    fmt.Println(string(data))

    // "ok"
    data, err = http.GetSimpleOfStandard("http://localhost:8082/api/api/app/sample/test/get")
    if err != nil {
        fmt.Errorf(err.Error())
        return
    }
    fmt.Println(string(data))
}

配置

# http的配置
base:
  http:
    # 通用的超时配置,链接、重定向、响应的所有超时时间;默认0,就是不超时
    timeout: 5s
    transport:
      # 握手的最长时间
      tls-handshake-timeout: 10s
      # 禁用HTTP keep alives,且将仅对单个HTTP请求使用到服务器的连接。 这与类似命名的TCP keep-alives无关
      disable-keep-alives: true
      # 禁用gzip的压缩标示
      disable-compression: true
      # 最大空闲连接数
      max-idle-conns: 100
      # 每个主机最大空闲连接数
      max-idle-conns-per-host: 100
      # 每个主机最大连接数
      max-conns-per-host: 100
      # 连接在关闭之前保持空闲的最长时间
      idle-conn-timeout: 90s
      # 完全写入请求后等待服务器响应标头的时间
      response-header-timeout: 15s
      # 在请求具有“Expect:100 continue”标头时,在完全写入请求标头后等待服务器的第一个响应标头的时间
      expect-continue-timeout: 1s
      # 指定服务器响应标头中允许的响应字节数限制
      max-response-header-bytes: 1024
      # 写入缓冲区的大小;如果为零,则使用默认值(当前为4KB)
      write-buffer-size: 4096
      # 从传输读取时使用的读取缓冲区的大小。如果为零,则使用默认值(当前为4KB)
      read-buffer-size: 4096
      # 使用Dial、DialTLS或DialContext func或TLSClientConfig字段时候,默认关闭http2;如果想要开启,则请设置为true
      force-attempt-HTTP2: true
      # 用于创建未加密TCP连接
      dial-context:
        # 超时是拨号等待连接完成的最长时间。如果同时设置了Deadline,则可能会更早失败。 默认值为无超时。
        timeout: 30s
        # 超时的绝对时间
        # deadline: "2023-02-13"
        # 活动网络连接的保持活动探测之间的间隔;默认15s
        keep-alive: 30s

如下是http的默认配置 Transport DefaultTransport

base:
  http:
    transport:
      # 使用Dial、DialTLS或DialContext func或TLSClientConfig字段时候,默认关闭http2;如果想要开启,则请设置为true
      force-attempt-HTTP2: true
      # 最大空闲连接数
      max-idle-conns: 100
      # 连接在关闭之前保持空闲的最长时间
      idle-conn-timeout: 90s
      # 握手的最长时间
      tls-handshake-timeout: 10s
      # 在请求具有“Expect:100 continue”标头时,在完全写入请求标头后等待服务器的第一个响应标头的时间
      expect-continue-timeout: 1s
      # 用于创建未加密TCP连接
      dial-context:
        # 超时是拨号等待连接完成的最长时间。如果同时设置了Deadline,则可能会更早失败。 默认值为无超时。
        timeout: 30s
        # 活动网络连接的保持活动探测之间的间隔;默认15s
        keep-alive: 30s