读取多部分/表单数据时出现"multipart: NextPart: EOF"错误



我正在为API构建一个路由器层,在这里我接受响应并从请求体中提取一个参数(在这种情况下是service_code,名称可以变化-service_code,serviceCode,code需要处理所有),并将其传递给需要它的服务。数据可以是原始json格式application/json,查询参数,路径参数或形式数据multipart/form-data。我能够做到这一点,但与其他形式,当我传递有效载荷到目标服务,我得到错误multipart: NextPart: EOF

下面是我读取数据的方法:

c.MultipartForm()
postForm := c.Request.PostForm
queryParams := c.Request.URL.Query()
route := c.Request.URL.Path
body, _ := ioutil.ReadAll(c.Request.Body)
serviceCode, destUrl, payload := getCityCode(queryParams, route, body, postForm)

然后我将这个有效载荷传递给http.NewRequest

http.NewRequest(method, destUrl, strings.NewReader(payload))

在目的地读取数据时:

data := models.Data{}
err := c.Bind(&data); err != nil {
c.JSON(400, gin.H{"error": err.Error()})
return
}

错误是multipart: NextPart: EOF。有人能帮帮我吗?

当表单为空时发生此错误,因为您在绑定它之前使用ioutil读取所有流数据。您应该更改代码,以便在绑定后使用所需的信息。

最新更新