xdmp:http-get()
またはを使用して MarkLogic を使用して 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()
ましたが、パラメーターをとらないため、どの応答コードを見ているのかわかりません。