MarkLogic v1/REST API创建的事务

MarkLogic v1/REST API创建的事务,rest,transactions,marklogic,Rest,Transactions,Marklogic,我一直在尝试使用以下开发人员指南,通过MarkLogic REST API(/v1/transactions)创建事务: 当我尝试调用事务REST服务来创建新事务(我使用的是CURL)时,我会收到以下HTTP响应: curl -X POST -d "" -i --anyauth --user user:password http://localhost:7010/v1/transactions HTTP/1.1 401 Unauthorized WWW-Authenticate: Digest

我一直在尝试使用以下开发人员指南,通过MarkLogic REST API(/v1/transactions)创建事务:

当我尝试调用事务REST服务来创建新事务(我使用的是CURL)时,我会收到以下HTTP响应:

curl -X POST -d "" -i --anyauth --user user:password http://localhost:7010/v1/transactions

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="public", ...
Content-type: application/xml
Server: MarkLogic
Content-Length: 211
Connection: Keep-Alive
Keep-Alive: timeout=5

HTTP/1.1 400 Bad Request
Content-type: application/xml
Server: MarkLogic
Content-Length: 316
Connection: Keep-Alive
Keep-Alive: timeout=5

<rapi:error xmlns:rapi="http://marklogic.com/rest-api">
  <rapi:status-code>400</rapi:status-code><rapi:status>Bad Request</rapi:status>
  <rapi:message-code>REST-INVALIDPARAM</rapi:message-code>
  <rapi:message>REST-INVALIDPARAM: (err:FOER0000) Invalid parameter: could not parse transaction id </rapi:message>
</rapi:error>
curl-X POST-d”“-i--anyauth--user:passwordhttp://localhost:7010/v1/transactions
HTTP/1.1 401未经授权
WWW-Authenticate:Digest-realm=“public”。。。
内容类型:application/xml
服务器:MarkLogic
内容长度:211
连接:保持活力
保持活动状态:超时=5
HTTP/1.1400错误请求
内容类型:application/xml
服务器:MarkLogic
内容长度:316
连接:保持活力
保持活动状态:超时=5
400错误请求
REST-invalidaram
REST-INVALIDPARAM:(错误:FOER0000)无效参数:无法分析事务id
有趣的是,当我在Chrome中使用POSTMAN时,我可以创建事务,但响应与预期的不同(它的响应状态为200,并使用XML详细说明事务,而不是303响应和设置为事务ID的“位置”标题)

有人能帮我解释一下为什么CURL语句失败了吗


干杯

问题在于
卷曲
方便”而不是你的要求

如果不为帖子指定内容类型
curl
“有益”将内容类型默认为
application/x-www-form-urlencoded

restapi
application/x-www-form-urlencoded
POST
处理为
GET
,因为没有有效负载,只有参数,这就是为什么它看起来像一个错误的请求

尝试使用相同的
curl
命令,但添加
-H'内容类型:text/plain'
参数


希望对您有所帮助

200 vs 303可能是您的客户自动执行重定向。有时候,在客户端禁用它就不那么令人困惑了。干杯,成功了。有人也对开发人员文档发表了评论,所以其他人应该从这个建议中受益。再次感谢。:)