使用 MarkLogic 从带有xdmp:http-get()
or的 Web 服务中提取数据xdmp:http-post()
,我希望能够在尝试处理数据之前检查返回的标头。在 DQ 我可以这样做:
let $result := xdmp:http-get($query,$options) (: $query and $options are fine, I promise. :)
return $result
我得到的结果是这样的:
<v:results v:warning="more than one node">
<response>
<code>200</code>
<message>OK</message>
<headers>
<server>(actual server data was here)</server>
<date>Thu, 07 Jun 2012 16:53:24 GMT</date>
<content-type>application/xml;charset=UTF-8</content-type>
<content-length>2296</content-length>
<connection>close</connection>
</headers>
</response>
其次是实际反应。问题是我似乎无法将 XPath 插入此响应节点。如果我将我的 return 语句更改为return $result/response/code
我得到空序列。如果我可以在尝试处理返回的实际数据之前检查该代码以确保我得到了 200,那将比使用 try-catch 块来查看数据是否存在并且是否正常要好得多。
因此,如果有人知道如何访问这些响应代码,我很乐意看到您的解决方案。
作为记录,我试过了xdmp:get-response-code()
,但它不带任何参数,所以我不知道它在看什么响应代码。