使用 Rest API 时出现 Marklogic SVC-BAD 代码点错误

标签 marklogic marklogic-8

我有一个自定义休息端点 (POST) 并传递一些键值对,在我的端点中,我获取这些键值对并创建一个 xml 文档..这是代码

let $enevelope := <document-enevelope>
                     <metadata>
                     {
                       let $extraProperties := xdmp:get-request-field-names()
                       for $x at $i in $extraProperties
                           let  $val := xdmp:get-request-field($x)
                            return
                               if(repoLoad:isEmpty($val)) then ()
                                 else
                                    element {fn:normalize-space($x)} {$val}}
                       }
                        </metadata>
    </document-enevelope>
let $_ := xdmp:document-insert($docEnevelopeURI, $enevelope,(xdmp:default-permissions()), ())

所有这些都有效,但是当我向我的 POST 请求发送此键/值对时

"Experiment_name":"X13-284-285-A-1516147.0-V1ß iv.po.ip.b.CSF.rat."

我收到以下错误错误:AppRequestTask::run: SVC-BAD: Bad CodepointIterator::_next

我发送的请求甚至没有到达我的自定义休息端点..我确实用UTF-8对键/值进行了编码..我对出了什么问题感到困惑..但在查询控制台中我做了同样的插入使用相同的键/值它可以工作..

我做错了什么..??

最佳答案

我能够通过对 UTF-8 中的参数进行 URLEncoding 来解决我的问题,并且在 Marklogic 中的休息服务中我执行了 xdmp:url-decode 来解决我的问题...

我的 Marklogic Rest 服务在 java 中调用,因此在调用之前我会执行 URLEncoder.encode(str, "UTF-8") 并在我的 Marklogic 服务端点中通过调用 xdmp 来解码参数:url 解码

关于使用 Rest API 时出现 Marklogic SVC-BAD 代码点错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37732930/

相关文章:

MarkLogic 重新索引问题

xml - 如何在 Marklogic 中构建一个简单的搜索应用程序?

gradle - 无法在数据中心框架 MarkLogic 中运行 Harmonize 流

windows - 在 Windows 中转义 curl 命令

marklogic - 获取文档中包含搜索片段的节点

marklogic - 通过负载均衡器使用 mlGradle 进行部署时出错

xquery - 高效的 XQuery 查询来确定不存在元素的文档

marklogic - MarkLogic 中是否有设置最大森林大小的参数?

marklogic - mlGradle 和配置副本林

xquery - 派生函数中的last()