gpt4 book ai didi

ubuntu - 如何从 Ubuntu 使用 cURL 将 XQuery 代码发布到 MarkLogic?

转载 作者:行者123 更新时间:2023-12-04 20:00:36 27 4
gpt4 key购买 nike

我正在使用 Ubuntu 机器。我正在使用 curl 命令进行 POST 调用,并以字符串格式将 xquery 代码 作为 --data 发送。作为回应,我收到以下错误:

xdmp:database()HTTP/1.1 500 REST-UNSUPPORTEDPARAM: (rest:UNSUPPORTEDPARAM) Endpoint does not support query parameter: xdmp:database()

下面是完整的curl命令

curl -v --digest -u username --request POST "http://host:port/qconsole/endpoints/evaler.xqy?dbid=someid&querytype=xquery&action=eval" --data "xdmp:database()"

在上面的命令中,基本上我试图在目标机器上运行 xquery 代码 (host:port/endpoints/evaler.xqy)

这是传递 xquery 代码的正确方法吗?

更新:

我正在使用 ML 7

通过 header 后,我可以运行 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"

当我尝试将“let $x := 10 return $x”作为数据传递时(如下面的命令所示)我得到了

x: undefined variable

甚至不要求输入密码!!

 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"

无法弄清楚,我做错了什么。

请帮忙。

最佳答案

这是一些 example bash它使用 cURL 从 stdin 评估 JavaScript。 (更改为 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 @-

您需要适本地设置您的 $USER$PASS 变量。

关于ubuntu - 如何从 Ubuntu 使用 cURL 将 XQuery 代码发布到 MarkLogic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37291259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com