如何复制降价文件';将内容作为curl命令中的请求主体

如何复制降价文件';将内容作为curl命令中的请求主体,curl,command-line,markdown,Curl,Command Line,Markdown,我想调用具有以下请求格式的API: curl -X POST -H "Content-Type: application/json" \ -H "api-key: API_KEY" \ -d '{"article": {"body_markdown":"---\ntitle:A sample article about...\npublished:false\n---\n..."}}' \ <api-url> 如何将tes.md文件的内容复制为curl命令行? 我试过

我想调用具有以下请求格式的API:

curl -X POST -H "Content-Type: application/json" \
-H "api-key: API_KEY" \
-d '{"article":
       {"body_markdown":"---\ntitle:A sample article about...\npublished:false\n---\n..."}}' \
<api-url>
如何将
tes.md
文件的内容复制为curl命令行? 我试过几种方法,但都不管用

cat tes.md | curl -X POST -H 'Content-Type: application/json' -H 'api-key: <my-key>' --data '@tes.md' <api-url>
cat tes.md | curl-X POST-H'内容类型:application/json'-H'api键:'--data'@tes.md'也不起作用


哪里做错了?

首先将标记文件的内容存储在变量中。要发送JSON数据,应使用文字
\n
字符替换换行符:

markdown=$(sed's/$/\\n/'test.md | tr-d'\n')
然后构造JSON数据字符串:

data\u string=“{\'article\”:{\'body\u markdown\”:\“$markdown\”}”
然后使用curl发送数据:

curl-H“内容类型:应用程序/json”-H“api键:api_键”-d“$data_字符串”http://api.example.com
cat tes.md | curl -X POST -H 'Content-Type: application/json' -H 'api-key: <my-key>' --data '@tes.md' <api-url>
curl -X POST -H 'Content-Type: application/json' -H 'api-key: <my-key>' --data '@tes.md' <api-url>