2016-06-09 42 views
2

我有一个自定义休息终点(POST)并传递了一些键值对,并且在我的端点中,我获取了这些键值对并创建了一个xml文档..这里是代码当使用Rest API时,Marklogic SVC-BAD Codepoint错误

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." 

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

的请求我发送甚至没有来到我的自定义休息端点..我没有编码UTF-8的键/值..我很困惑什么是错误的..但在查询控制台我做同样的插入相同的密钥/价值它的作品..

我在做什么错误..?

回答

3

我能够在UTF-8,并在Marklogic我休息服务,我这样做,我的固定问题xdmp:url-decode URL编码的指标的影响来解决我的问题...

我Marklogic REST服务调用java中如此前打电话给我做URLEncoder.encode(str, "UTF-8"),在我的Marklogic服务端点中,我通过调用xdmp:url-decode

来解码参数