Jump to main content

##

# TCPIP_HTTP_PostValueRead Function

## C

    HTTP_READ_STATUS TCPIP_HTTP_PostValueRead(
        HTTP_CONN_HANDLE connHandle,
        uint8_t* cData,
        uint16_t wLen
    );

## Description

This function reads a value from a URL encoded string in the TCP buffer. This function is meant to be called from a TCPIP_HTTP_PostExecute callback to facilitate easier parsing of incoming data. This function also prevents buffer overflows by forcing the programmer to indicate how many bytes are expected. At least 2 extra bytes are need in cData above the maximum length of data expected to be read.

This function will read until the next '&' character, which indicates the end of a value parameter. It assumes that the front of the buffer is the beginning of the value parameter to be read. If pHttpCon->byteCount indicates that all expected bytes are in the buffer, it assumes that all remaining data is the value and acts accordingly.

This function properly updates pHttpCon->byteCount by decrementing it by the number of bytes read. The terminating '&' character is also removed from the buffer.

## Preconditions

The front of the TCP buffer is the beginning of a name parameter, and the rest of the TCP buffer contains a URL-encoded string with a name parameter terminated by a '=' character.

## Parameters

Parameters | Description
--- | ---
connHandle | HTTP connection handle.
cData | Where to store the value once it is read.
wLen | How many bytes can be written to cData.

## Returns

- HTTP_READ-OK - Value was successfully read.
- HTTP_READ_TRUNCATED - Entire value could not fin in the buffer, so the value was truncated and data has been lost.
- HTTP_READ_INCOMPLETE - Entire value was not yet in the buffer, so call this function again later to retrieve.

## Remarks

None.