Browse Source

能获取到body,能base64,能proto反序列化

master
xyiege 5 months ago
parent
commit
10093a1cbf
  1. 54
      aufs/core/setting.go

54
aufs/core/setting.go

@ -3,9 +3,13 @@ package core
import (
"aufs/db"
"aufs/proto/pb"
"encoding/base64"
"encoding/json"
"fmt"
"net/http"
"strconv"
"google.golang.org/protobuf/proto"
)
// 输出的结构
@ -71,16 +75,53 @@ func Scedit(w http.ResponseWriter, r *http.Request) {
return
}
// 接受body并将其转换为二进制数据
// 获取到body的内容
buf := make([]byte, 1024)
n, _ := r.Body.Read(buf)
fmt.Println(string(buf[:n]))
// 转换为字符串
base64Str := string(buf[:n])
// 解码base64
decodedData, err := base64.StdEncoding.DecodeString(base64Str)
if err != nil {
fmt.Println("解码base64失败:", err)
return
}
fmt.Println("解码后的数据:", decodedData)
// base64转为proto对象
var sc pb.ServiceInfo
err := json.NewDecoder(r.Body).Decode(&sc)
err = proto.Unmarshal(decodedData, &sc)
if err != nil {
// 解析失败返回错误信息
errorResp := map[string]string{"error": "JSON格式错误", "details": err.Error()}
json.NewEncoder(w).Encode(errorResp)
fmt.Println("解码json失败:", err)
return
}
defer r.Body.Close()
fmt.Println("解码后的数据:", sc)
// 接受传递过来的base64
// base64Str := r.Body
// fmt.Println(base64Str)
// // 解码base64
// decodedData, err := base64.StdEncoding.DecodeString(base64Str)
// if err != nil {
// fmt.Println("解码base64失败:", err)
// return
// }
// fmt.Println("解码后的数据:", decodedData)
// test end
// 接受body并将其转换为二进制数据
// var sc pb.ServiceInfo
// err := json.NewDecoder(r.Body).Decode(&sc)
// if err != nil {
// // 解析失败返回错误信息
// errorResp := map[string]string{"error": "JSON格式错误", "details": err.Error()}
// json.NewEncoder(w).Encode(errorResp)
// return
// }
// defer r.Body.Close()
// 处理接收的json
// 数据库初始化
@ -91,6 +132,7 @@ func Scedit(w http.ResponseWriter, r *http.Request) {
"message": "success",
"status": "200",
"data": sc.Scname,
// "data": "test string",
})
}

Loading…
Cancel
Save