我有以下控制器:
public IActionResult Post([FromQuery] int Width, [FromQuery] int Height, [FromForm] IFormFile Image)
Run Code Online (Sandbox Code Playgroud)
使用 Insomnia / Postman,我可以执行 post 命令并在 url 中传递宽度/高度参数。
我试图对 CURL 执行相同的操作,但没有看到第二个参数。在这种情况下,高度将为 0
curl -F image=@photo.jpg test/thumbnail?width=320&height=240
Run Code Online (Sandbox Code Playgroud)
在这种情况下,宽度将为 0
curl -F image=@photo.jpg test/thumbnail?height=240&width=320
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
最可能的问题是&
macOS shell(命令行解释器)中有一个特殊字符;如果不加引号,它将充当命令分隔符并在后台运行前面的命令。其余 ( height=240
) 被 macOS 解释为第二个命令。
因此参数 with&
必须被引号括起来,或者其&
本身用反斜杠转义:
"test/thumbnail?height=240&width=320"\ntest/thumbnail?height=240\\&width=320\ntest/thumbnail?height=240"&"width=320\ntest/thumbnail?\'height=240&width=320\'\netc.\n
Run Code Online (Sandbox Code Playgroud)\n\n(?
也很特别,因为它是一个通配符,但只有当它恰好与本地系统上的真实文件名匹配时,这才是问题。)
建议的评论-d
不正确。其一,它们以 POST 负载 \xe2\x80\x93 的形式发送参数,但控制器需要查询字符串 (GET) 参数,这根本不是一回事。另一方面,请求一次只能使用一种格式\xe2\x80\x93,您不能在同一请求中混合使用-F
和。-d
归档时间: |
|
查看次数: |
24679 次 |
最近记录: |