【Http 每天一小问 ,Post上传文件时, 文件和 -d(--data)和 -F(--form) 不能同时存在 ,怎么办】

今天在做文件上传的时候 ,遇到报错, Warning: You can only select one HTTP request method! You asked for both POST ,

调用命令

curl -X POST https://example.com/log/upload  \
     -F "file=@/usr/log/app.log"                            \
     -H "Token: token_abc"                                         \
     -d 'metadata={"timestamp": 1725448366, "device_id": "app-xx1"}'

查了下原因,原来:-d 选项不能与 -F 选项混合使用。应该使用 -F 选项来发送表单数据,包括文件和其他字段。修整:

curl -X POST https://example.com/log/upload  \
     -F "file=@/usr/log/app.log"             \
     -H "Token: token_abc"                   \
     -F "metadata={\"timestamp\": 1725448366, \"device_id\": \"app-xx1\"}"

然后在服务端的时候接收,类似

metadataStr = req.PostForm("metadata")
// 然后解析使用

#我的问题

你可能感兴趣的:(http,网络协议,网络)