Dix*_*gla 2 ubuntu curl xquery marklogic
我正在使用Ubuntu机器.我正在使用curl命令进行POST调用,并以字符串格式将xquery代码作为--data 发送.作为回应我得到以下错误:
xdmp:database()HTTP/1.1 500 REST-UNSUPPORTEDPARAM: (rest:UNSUPPORTEDPARAM) Endpoint does not support query parameter: xdmp:database()
Run Code Online (Sandbox Code Playgroud)
下面是完整的curl命令
curl -v --digest -u username --request POST "http://host:port/qconsole/endpoints/evaler.xqy?dbid=someid&querytype=xquery&action=eval" --data "xdmp:database()"
Run Code Online (Sandbox Code Playgroud)
在上面的命令基本上我试图在目标机器上运行xquery代码(主机:端口/端点/ evaler.xqy)
这是传递xquery代码的正确方法吗?
更新:
我正在使用ML 7
传递头文件后,我能够运行XQuery代码,但又面临一个问题.
当我传递"xdmp:database()"作为数据它工作正常(参见下面的命令),在响应中我得到数据库ID.
curl -v --digest -uusername --data "xdmp:database()" --header "Content-type:text/x-www-form-urlencoded" --header "Accept: multipart/mixed; boundary=BOUNDARY" --request POST "http://host:port/qconsole/endpoints/evaler.xqy?dbid=dbid&querytype=xquery&action=eval"
Run Code Online (Sandbox Code Playgroud)
当我尝试传递"let $ x:= 10 return $ x"作为数据时(如下面的命令所示)我得到了
x:未定义的变量
甚至不要求密码!!
curl -v --digest -u username --data "let $x := 10 return $x" --header "Content-type:text/x-www-form-urlencoded" --header "Accept: multipart/mixed; boundary=BOUNDARY" --request POST "http://host:port/qconsole/endpoints/evaler.xqy?dbid=dbid&querytype=xquery&action=eval"
Run Code Online (Sandbox Code Playgroud)
无法弄清楚,我做错了什么.
请帮忙.
下面是一些使用cURL从stdin中评估JavaScript的示例bash.(更改为XQuery只是更改参数名称的问题.)
#!/usr/bin/env bash
# Pipes stdin as the JavaScript body of a REST Client API eval request
#
# Usage:
# cat cat mycode.js | awk … | curl … @-
# pbpaste | awk … | curl … @-
awk '{print "javascript="$0}' | curl http://localhost:8000/v1/eval --digest -u "$USER":"$PASS" -X POST -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: multipart/mixed' -d @-
Run Code Online (Sandbox Code Playgroud)
您需要适当地设置$USER和$PASS变量.
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |