Lotus Notes Xpages,如何获取" Content-Range"在api文件中

时间:2016-10-26 04:15:14

标签: xpages lotus-notes xpages-ssjs

我有一个网址$ sed -f <(sed -E 's|^(\S+).*|/\1/d|' file1) file2 acl 2.2.51 GPLv2+ audit 2.4.1 GPLv2+ binutils 2.23.52.0.1 GPLv3+

如何使用/{database}/api/data/collections/name/{name}获取视图{name}的所有条目?

1 个答案:

答案 0 :(得分:1)

<强> SSJS

您可以使用HttpURLConnection的方法getHeaderFields()获取所有响应标头字段。

使用get('Content-Range')选择您想要的标题字段。

示例:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:text escape="true" id="computedField1">
        <xp:this.value><![CDATA[#{javascript:
            var url = new java.net.URL(
                "http://yourServer/yourDatabase.nsf/api/data/collections/name/All");
            var conn:java.net.HttpURLConnection = url.openConnection();
            conn.setRequestProperty("Accept", "application/json");
            if (conn.getResponseCode() == "200") {
                try {
                    return conn.getHeaderFields().get('Content-Range');
                } catch(e) {
                    return 'Error reading header field "Content-Range"';
                }
            } else {
                return 'Error ' + conn.getResponseCode() + " " + conn.getResponseMessage();
            }
        }]]></xp:this.value>
    </xp:text>
</xp:view>

此示例XPage呈现为结果,例如items 0-9/35并指示响应包括总共35个条目中的条目0到9。

如果您只想获得总条目数,请更改行

                    return conn.getHeaderFields().get('Content-Range');

                    var range = conn.getHeaderFields().get('Content-Range').get(0);
                    var total = range.substr(range.indexOf('/') + 1);
                    return total;

这将仅呈现相同的网址35

<强> CSJS

在客户端使用XMLHttpRequest的方法getResponseHeader()

var xhr = new XMLHttpRequest(); 
xhr.open('GET', url, false); 
xhr.send(null); 
var range = xhr.getResponseHeader("Content-Range");
var total = range.substr(range.indexOf('/') + 1); 
return total