.\" Man page generated from reStructuredText. . .TH "TSMIMEHDRFIELDVALUESTRINGGET" "3ts" "Mar 08, 2019" "7.1" "Apache Traffic Server" .SH NAME TSMimeHdrFieldValueStringGet \- get HTTP MIME header values . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .SH SYNOPSIS .sp \fI#include \fP .INDENT 0.0 .TP .B const char * TSMimeHdrFieldValueStringGet(TSMBuffer\fI\ bufp\fP, TSMLoc\fI\ hdr\fP, TSMLoc\fI\ field\fP, int\fI\ idx\fP, int *\fI\ value_len_ptr\fP) .UNINDENT .INDENT 0.0 .TP .B int TSMimeHdrFieldValueIntGet(TSMBuffer\fI\ bufp\fP, TSMLoc\fI\ hdr\fP, TSMLoc\fI\ field\fP, int\fI\ idx\fP) .UNINDENT .INDENT 0.0 .TP .B int64_t TSMimeHdrFieldValueInt64Get(TSMBuffer\fI\ bufp\fP, TSMLoc\fI\ hdr\fP, TSMLoc\fI\ field\fP, int\fI\ idx\fP) .UNINDENT .INDENT 0.0 .TP .B unsigned int TSMimeHdrFieldValueUintGet(TSMBuffer\fI\ bufp\fP, TSMLoc\fI\ hdr\fP, TSMLoc\fI\ field\fP, int\fI\ idx\fP) .UNINDENT .INDENT 0.0 .TP .B time_t TSMimeHdrFieldValueDateGet(TSMBuffer\fI\ bufp\fP, TSMLoc\fI\ hdr\fP, TSMLoc\fI\ field\fP) .UNINDENT .SH DESCRIPTION .sp MIME headers and fields can be components of request headers, response headers, or standalone headers created within a Traffic Server plugin. The functions here are all used to access header values of specific types, but it is up to the caller to know if a header has appropriate semantics for the API used. For all but \fI\%TSMimeHdrFieldValueStringGet()\fP, an appropriate data conversion algorithm is applied to the header field string. .sp All the APIs take a \fBTSMBuffer\fP marshal buffer argument \fIbufp\fP, and a \fBTSMLoc\fP argument \fIhdr\fP indicating the location of the HTTP headers. The required \fIfield\fP argument is the locator of a specific header value, as returned by an accessor function such as \fBTSMimeHdrFieldFind()\fP\&. .sp Within the header field, comma\-separated values can be retrieved with an index \fIidx\fP ranging from \fB0\fP to the maximum number of fields for this value; this maximum is retrieved using \fBTSMimeHdrFieldValuesCount()\fP\&. An \fIidx\fP value of \fB\-1\fP has the semantics of retrieving the entire header value, regardless of how many comma\-separated values there are. If a header is not comma\-separated, an \fIidx\fP of \fB0\fP or \fB\-1\fP are the same, but the latter is preferred. .sp \fI\%TSMimeHdrFieldValueStringGet()\fP returns a pointer to the header value, and populated \fIvalue_len_ptr\fP with the length of the value in bytes. The returned header value is not NUL\-terminated. .SH RETURN VALUES .sp All functions returns the header value with a type matching the respective function name. Using \fI\%TSMimeHdrFieldValueDateGet()\fP on a header which does not have date\-time semantics always returns \fB0\fP\&. .SH EXAMPLES .sp This examples show how to retrieve and copy a specific header. .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C #include #include int get_content_type(TSHttpTxn txnp, char* buf, size_t buf_size) { TSMBuffer bufp; TSMLoc hdrs; TSMLoc ctype_field; int len = \-1; if (TS_SUCCESS == TSHttpTxnServerRespGet(txnp, &bufp, &hdrs)) { ctype_field = TSMimeHdrFieldFind(bufp, hdrs, TS_MIME_FIELD_CONTENT_TYPE, TS_MIME_LEN_CONTENT_TYPE); if (TS_NULL_MLOC != ctype_field) { const char* str = TSMimeHdrFieldValueStringGet(bufp, hdrs, ctype_field, \-1, &len); if (len > buf_size) len = buf_size; memcpy(buf, str, len); TSHandleMLocRelease(bufp, hdrs, ctype_field); } TSHandleMLocRelease(bufp, TS_NULL_MLOC, hdrs); } return len; } .ft P .fi .UNINDENT .UNINDENT .SH SEE SLSO .sp \fBTSAPI(3ts)\fP, \fBTSMBufferCreate(3ts)\fP, \fBTSMimeHdrFieldValuesCount(3ts)\fP .SH COPYRIGHT 2019, dev@trafficserver.apache.org .\" Generated by docutils manpage writer. .