yxtiblin
@yxtiblin

Golang как распарсить запрос с JSON и файлом?

Появилась проблема с тем, что я не совсем понимаю как можно распарсить запрос приходящий на сервер.
Отправляется запрос с питона и содержит он примерную структуру:
auth = {"Token": "some token"} # header for jwt auth

payload = {
    "name": request.form.get("name"),
    "author": request.form.get("author")
}

requests.post(
    f"{service}/api/v1/user/{username}/track/add",

     files = {
         "json": (None, json.dumps(payload),  'application/json'),
         "file": (filename, open(filename, 'rb'),  'application/octet-stream')
     },

     headers=auth
)


Вот хендлер урла на go (использую gin)
func Add_track(c *gin.Context) {
	type track struct {
		Name   string `json:"name"`
		Author string `json:"author"`
		File   []byte
		Image  []byte
	}
	var rtrack *track

	if err := json.NewDecoder(c.Request.Body).Decode(&rtrack); err != nil {
		c.JSON(http.StatusConflict, gin.H{
			"error": err,
		})
		fmt.Println(err)
		return
	}
}

Сервер при попытке декода запроса выдает ошибку invalid character '-' in numeric literal
Я понимаю что скорее всего ошибся в go, но не знаю как решить эту проблему
  • Вопрос задан
  • 453 просмотра
Решения вопроса 1
yellow79
@yellow79
Senior Software Engineer
Не знаю как обстоят дела у Gin, но у родного GO-шного http.Request есть метод FormFile, вам нужен именно он
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@12rbah
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы