为什么这个JSON POST发布一个空文件?

时间:2014-05-21 21:08:38

标签: json curl terminal

我正在尝试使用终端中的cURL将以下JSON发布到URL:

[
    {
        "token": "ABCDEF",
        "templateId": "{1234-5678-9}",
        "senders": "null",
        "viewers": "null",
        "peoples": "null",
        "fields": {
            "Matter Name": "My test matter name",
            "Matter Number": "ABC123"
        }
    }
]

这是我在终端发布的方式:

curl -v -k -X POST -H "Content-Type: application/json" -d docfile=@test.json https://myWebsite.com/extension/extension/extension

终端输出明确表示发布了某些内容,但令我困惑的部分是输出中的摘录:upload completely sent off: 18 out of 18 bytes

只发送了18个字节?我的文件是218个字节...为什么这个文件没有被POST?什么 被张贴?

1 个答案:

答案 0 :(得分:1)

问题在于您的-d开关。来自文档:

  

-d

     

将POST请求中的指定数据发送到HTTP服务器...如果使用字母@启动数据,则其余数据应为从中读取数据的文件名。

您传递给-d开关的内容不以“@”开头,因此它被解释为实际数据。您会注意到docfile=@test.json实际上是18个字节。

您需要将其从-d docfile=@test.json更改为-d @test.json