1<refentry id="refresphdr">
2
3  <refmeta>
4    <refentrytitle>ne_get_response_header</refentrytitle>
5    <manvolnum>3</manvolnum>
6  </refmeta>
7
8  <refnamediv>
9    <refname id="ne_get_response_header">ne_get_response_header</refname>
10    <refname id="ne_response_header_iterate">ne_response_header_iterate</refname>
11    <refpurpose>functions to access response headers</refpurpose>
12  </refnamediv>
13  
14  <refsynopsisdiv>
15
16    <funcsynopsis>
17
18      <funcsynopsisinfo>#include &lt;ne_request.h&gt;</funcsynopsisinfo>
19
20      <funcprototype>
21        <funcdef>const char *<function>ne_get_response_header</function></funcdef>
22        <paramdef>ne_request *<parameter>request</parameter></paramdef>
23        <paramdef>const char *<parameter>name</parameter></paramdef>
24      </funcprototype>
25
26      <funcprototype>
27        <funcdef>void *<function>ne_response_header_iterate</function></funcdef>
28        <paramdef>ne_request *<parameter>request</parameter></paramdef>
29        <paramdef>void *<parameter>cursor</parameter></paramdef>
30        <paramdef>const char **<parameter>name</parameter></paramdef>
31        <paramdef>const char **<parameter>value</parameter></paramdef>
32      </funcprototype>
33
34    </funcsynopsis>
35
36  </refsynopsisdiv>
37
38  <refsect1>
39    <title>Description</title>
40
41    <para>To retrieve the value of a response header field, the
42    <function>ne_get_response_header</function> function can be used,
43    and is given the name of the header to return.</para>
44
45    <para>To iterate over all the response headers returned, the
46    <function>ne_response_header_iterate</function> function can be
47    used.  This function takes a <parameter>cursor</parameter>
48    parameter which should be &null; to retrieve the first header. The
49    function stores the name and value of the next header header in
50    the <parameter>name</parameter> and <parameter>value</parameter>
51    parameters, and returns a new cursor pointer which can be passed
52    to <function>ne_response_header_iterate</function> to retrieve the
53    next header.</para>
54
55  </refsect1>
56
57  <refsect1>
58    <title>Return value</title>
59
60    <para><function>ne_get_response_header</function> returns a
61    string, or &null; if no header with that name was given.  If used
62    during request processing, the return value pointer is valid only
63    until the next call to <function>ne_begin_request</function>, or
64    else, until the request object is destroyed.</para>
65
66    <para>Likewise, the cursor, names, and values returned by
67    <function>ne_response_header_iterate</function> are only valid
68    until the next call to <function>ne_begin_request</function> or
69    until the request object is destroyed.</para>
70
71  </refsect1>
72
73  <refsect1>
74    <title>Examples</title>
75
76    <para>The following code will output the value of the
77    <literal>Last-Modified</literal> header for a resource:</para>
78
79    <programlisting>ne_request *req = ne_request_create(sess, "GET", "/foo.txt");
80if (ne_request_dispatch(req) == NE_OK) {
81    const char *mtime = ne_get_response_header(req, "Last-Modified");
82    if (mtime) {
83        printf("/foo.txt has last-modified value %s\n", mtime);
84    }
85}
86ne_request_destroy(req);</programlisting>
87
88  </refsect1>
89
90  <refsect1>
91    <title>See also</title>
92
93    <para><xref linkend="ne_request_create"/>, <xref
94    linkend="ne_request_destroy"/>.</para>
95  </refsect1>
96
97</refentry>
98
99