使用curl,我试图将多个任意XML文档发布到需要1个或更多文档的端点(此处的具体目标是测试“或更多”)。
我看到一些SO答案建议使用带有一次性键名的-F
(而不是-d
)将指示curl生成正确的多部分标题和邮件正文边界,并使用键的值作为消息正文中的部分,代替文件内容:
curl -u user:pass -k -X POST \
-F key1='<Document>Document 1</Document>' \
-F key2='<Document>Document 2</Document>' \
https://localhost:1234/some/endpoint
然而,curl balks表示键值不是真正的文件名:
curl: (26) couldn't open file "<Document>Document 1</Document>"
这不是一种有效的方法吗?我的curl命令有问题吗?使用-d
执行多部分POST时,我没有成功获得curl。
答案 0 :(得分:1)
将两个连接的XML元素作为单个消息体(而不是多部分)进行POST。但是,这是意料之外的,因为XML中的多个根元素无效:
curl -u user:pass -k -X POST \
-H "Content-Type: text/xml" \
-d '<Document>Document 1</Document><Document>Document 2</Document>' \
https://localhost:1234/some/endpoint