浏览代码

support gzip/deflate encoding

master
Fusl 1年前
父节点
当前提交
5cfe0635b4
共有 1 个文件被更改,包括 20 次插入0 次删除
  1. +20
    -0
      main.go

+ 20
- 0
main.go 查看文件

@@ -3,6 +3,8 @@ package main
import (
"bufio"
"bytes"
"compress/flate"
"compress/gzip"
"context"
"encoding/json"
"fmt"
@@ -476,6 +478,24 @@ func (that *GlobalBackfeedManager) HandleLegacy(res http.ResponseWriter, req *ht
if len(splitter.Delimiter) == 0 {
splitter.Delimiter = []byte{0x00}
}
var body io.ReadCloser
switch req.Header.Get("Content-Encoding") {
case "":
body = req.Body
case "gzip":
var err error
body, err = gzip.NewReader(req.Body)
if err != nil {
WriteResponse(res, http.StatusBadRequest, err)
return
}
defer body.Close()
case "deflate":
body = flate.NewReader(req.Body)
defer body.Close()
default:
WriteResponse(res, http.StatusBadRequest, fmt.Errorf("unsupported Content-Encoding: %s", req.Header.Get("Content-Encoding")))
}
scanner := bufio.NewScanner(req.Body)
scanner.Split(splitter.Split)



正在加载...
取消
保存