Network Services API  2.80.00.17
Data Structures | Macros | Typedefs | Functions | Variables
httpclient.h File Reference
#include <stdbool.h>
#include <ti/net/slnetsock.h>
#include "http.h"
Include dependency graph for httpclient.h:

Go to the source code of this file.

Data Structures

struct  HTTPClient_extSecParams
 

Macros

#define HTTPClient_DOMAIN_BUFLEN   (100)
 
#define HTTPClient_RES_HFIELD_BUFFER_SIZE   (300)
 
#define HTTPClient_MIN_USER_WORKSPACE_SIZE   (500)
 
#define HTTPClient_MAX_REDIRECTION_ATTEMPTS   (3)
 
#define HTTPClient_MAX_REQUEST_ATTEMPTS   (2)
 
#define HTTPClient_MAX_RESPONSE_HEADER_FILEDS   (25)
 
#define HTTPClient_PORT   (80)
 
#define HTTPClient_SECURE_PORT   (443)
 
#define HTTPClient_HFIELD_RES_AGE   (0)
 Age HTTP response header More...
 
#define HTTPClient_HFIELD_RES_ALLOW   (1)
 Allow HTTP response header More...
 
#define HTTPClient_HFIELD_RES_CACHE_CONTROL   (2)
 Cache-Control HTTP response header More...
 
#define HTTPClient_HFIELD_RES_CONNECTION   (3)
 Connection HTTP response header More...
 
#define HTTPClient_HFIELD_RES_CONTENT_ENCODING   (4)
 Content-Encoding HTTP response header More...
 
#define HTTPClient_HFIELD_RES_CONTENT_LANGUAGE   (5)
 Content-Language HTTP response header More...
 
#define HTTPClient_HFIELD_RES_CONTENT_LENGTH   (6)
 Content-Length HTTP response header More...
 
#define HTTPClient_HFIELD_RES_CONTENT_LOCATION   (7)
 Content-Location HTTP response header More...
 
#define HTTPClient_HFIELD_RES_CONTENT_RANGE   (8)
 Content-Range HTTP response header More...
 
#define HTTPClient_HFIELD_RES_CONTENT_TYPE   (9)
 Content-Type HTTP response header More...
 
#define HTTPClient_HFIELD_RES_DATE   (10)
 Date HTTP response header More...
 
#define HTTPClient_HFIELD_RES_ETAG   (11)
 ETag HTTP response header More...
 
#define HTTPClient_HFIELD_RES_EXPIRES   (12)
 Expires HTTP response header More...
 
#define HTTPClient_HFIELD_RES_LAST_MODIFIED   (13)
 Last-Modified HTTP response header More...
 
#define HTTPClient_HFIELD_RES_LOCATION   (14)
 Location HTTP response header More...
 
#define HTTPClient_HFIELD_RES_PROXY_AUTHENTICATE   (15)
 Proxy-Authenticate HTTP response header More...
 
#define HTTPClient_HFIELD_RES_RETRY_AFTER   (16)
 Retry-After HTTP response header More...
 
#define HTTPClient_HFIELD_RES_SERVER   (17)
 Server HTTP response header More...
 
#define HTTPClient_HFIELD_RES_SET_COOKIE   (18)
 Set-Cookie HTTP response header More...
 
#define HTTPClient_HFIELD_RES_TRAILER   (19)
 Trailer HTTP response header More...
 
#define HTTPClient_HFIELD_RES_TRANSFER_ENCODING   (20)
 Transfer-Encoding HTTP response header More...
 
#define HTTPClient_HFIELD_RES_UPGRADE   (21)
 Upgrade HTTP response header More...
 
#define HTTPClient_HFIELD_RES_VARY   (22)
 Vary HTTP response header More...
 
#define HTTPClient_HFIELD_RES_VIA   (23)
 Via HTTP response header More...
 
#define HTTPClient_HFIELD_RES_WWW_AUTHENTICATE   (24)
 Www-Authenticate HTTP response header More...
 
#define HTTPClient_HFIELD_RES_WARNING   (25)
 Warning HTTP response header More...
 
#define HTTPClient_REQUEST_HEADER_MASK   (0x80000000)
 
#define HTTPClient_HFIELD_REQ_ACCEPT   (26 | HTTPClient_REQUEST_HEADER_MASK)
 Accept HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_ACCEPT_CHARSET   (27 | HTTPClient_REQUEST_HEADER_MASK)
 Accept-Charset HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_ACCEPT_ENCODING   (28 | HTTPClient_REQUEST_HEADER_MASK)
 Accept-Encoding HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_ACCEPT_LANGUAGE   (29 | HTTPClient_REQUEST_HEADER_MASK)
 Accept-Language HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_ALLOW   (HTTPClient_HFIELD_RES_ALLOW | HTTPClient_REQUEST_HEADER_MASK)
 Allow HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_AUTHORIZATION   (30 | HTTPClient_REQUEST_HEADER_MASK)
 Authorization HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_CACHE_CONTROL   (HTTPClient_HFIELD_RES_CACHE_CONTROL | HTTPClient_REQUEST_HEADER_MASK)
 Cache-Control HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_CONNECTION   (HTTPClient_HFIELD_RES_CONNECTION | HTTPClient_REQUEST_HEADER_MASK)
 Connection HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_CONTENT_ENCODING   (HTTPClient_HFIELD_RES_CONTENT_ENCODING | HTTPClient_REQUEST_HEADER_MASK)
 Content-Encoding HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_CONTENT_LANGUAGE   (HTTPClient_HFIELD_RES_CONTENT_LANGUAGE | HTTPClient_REQUEST_HEADER_MASK)
 Content-Language HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_CONTENT_LOCATION   (HTTPClient_HFIELD_RES_CONTENT_LOCATION | HTTPClient_REQUEST_HEADER_MASK)
 Location HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_CONTENT_TYPE   (HTTPClient_HFIELD_RES_CONTENT_TYPE | HTTPClient_REQUEST_HEADER_MASK)
 Content-Type HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_COOKIE   (31 | HTTPClient_REQUEST_HEADER_MASK)
 Cookie HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_DATE   (HTTPClient_HFIELD_RES_DATE | HTTPClient_REQUEST_HEADER_MASK)
 Date HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_EXPECT   (32 | HTTPClient_REQUEST_HEADER_MASK)
 Expect HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_FORWARDED   (33 | HTTPClient_REQUEST_HEADER_MASK)
 Forwarded HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_FROM   (34 | HTTPClient_REQUEST_HEADER_MASK)
 From HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_HOST   (35 | HTTPClient_REQUEST_HEADER_MASK)
 Host HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_IF_MATCH   (36 | HTTPClient_REQUEST_HEADER_MASK)
 If-Match HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_IF_MODIFIED_SINCE   (37 | HTTPClient_REQUEST_HEADER_MASK)
 If-Modified-Since HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_IF_NONE_MATCH   (38 | HTTPClient_REQUEST_HEADER_MASK)
 If-None-Match HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_IF_RANGE   (39 | HTTPClient_REQUEST_HEADER_MASK)
 If-Range HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_IF_UNMODIFIED_SINCE   (40 | HTTPClient_REQUEST_HEADER_MASK)
 If-Unmodified-Since HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_ORIGIN   (41 | HTTPClient_REQUEST_HEADER_MASK)
 Origin HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_PROXY_AUTHORIZATION   (42 | HTTPClient_REQUEST_HEADER_MASK)
 Proxy-Authorization HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_RANGE   (43 | HTTPClient_REQUEST_HEADER_MASK)
 Range HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_TE   (44 | HTTPClient_REQUEST_HEADER_MASK)
 TE HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_TRANSFER_ENCODING   (HTTPClient_HFIELD_RES_TRANSFER_ENCODING | HTTPClient_REQUEST_HEADER_MASK)
 Transfer-Encoding HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_UPGRADE   (HTTPClient_HFIELD_RES_UPGRADE | HTTPClient_REQUEST_HEADER_MASK)
 Upgrade HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_USER_AGENT   (45 | HTTPClient_REQUEST_HEADER_MASK)
 User-Agent HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_VIA   (HTTPClient_HFIELD_RES_VIA | HTTPClient_REQUEST_HEADER_MASK)
 Via HTTP request header More...
 
#define HTTPClient_HFIELD_REQ_WARNING   (HTTPClient_HFIELD_RES_WARNING | HTTPClient_REQUEST_HEADER_MASK)
 Warning HTTP request header More...
 
#define HTTPClient_MAX_NUMBER_OF_HEADER_FIELDS   (46)
 
#define HTTPClient_REDIRECT_FEATURE   (48)
 
#define HTTPClient_RESPONSE_FILTER_CLEAR   (49)
 
#define HTTPClient_REDIRECT_TLS_DOWNGRADE   (50)
 
#define HTTPClient_AUTHENTICATE_SERVER_CALLBACK   (51)
 Attaches callback which will handle the server authentication response (401) More...
 
#define HTTPClient_ESENDBUFSMALL   (-3001)
 Internal send buffer is not big enough. More...
 
#define HTTPClient_EGETOPTBUFSMALL   (-3002)
 Buffer inserted into HTTPClient_getOpt() is not big enough. More...
 
#define HTTPClient_ERESPONSEINVALID   (-3003)
 Response received from the server is not a valid HTTP/1.1 or HTTP/1.0 response. More...
 
#define HTTPClient_EINPROGRESS   (-3004)
 Operation could not be completed. Try again. More...
 
#define HTTPClient_EDOMAINBUFSMALL   (-3005)
 Input domain name length is too long to be read into buffer. More...
 
#define HTTPClient_ECBALLOCATIONFAILED   (-3006)
 Allocation failed during the CB creation. More...
 
#define HTTPClient_EBODYBUFSMALL   (-3008)
 Body size is too small. More...
 
#define HTTPClient_ENULLPOINTER   (-3009)
 Invalid de-referencing a NULL pointer. More...
 
#define HTTPClient_EREQUESTHEADERALLOCFAILED   (-3010)
 Request header allocation failed. More...
 
#define HTTPClient_EREQHEADERNOTFOUND   (-3011)
 Request header wasn't found in the req header list. More...
 
#define HTTPClient_EHOSTNOTFOUND   (-3012)
 Host request header wasn't found. More...
 
#define HTTPClient_ECLIENTALREADYCONNECTED   (-3013)
 Client is already connected. More...
 
#define HTTPClient_ERESPONSEISNOTREDIRECTABLE   (-3014)
 Response is not redirectable. More...
 
#define HTTPClient_ESENDERROR   (-3015)
 Send couldn't be completed. More...
 
#define HTTPClient_EREDIRECTLOCATIONFAIL   (-3016)
 Location Header fields value couldn't be read completely. More...
 
#define HTTPClient_ETLSDOWNGRADEISFORBIDDEN   (-3017)
 TLS downgrade is forbidden. More...
 
#define HTTPClient_EWRONGAPIPARAMETER   (-3018)
 Wrong API parameter. More...
 
#define HTTPClient_EHOSTHEADERALREADYEXIST   (-3019)
 HOST already exist. More...
 
#define HTTPClient_ENOCONNECTION   (-3020)
 Client is disconnected. More...
 
#define HTTPClient_ENOTABSOLUTEURI   (-3021)
 URI is not absolute. More...
 
#define HTTPClient_ECANTCREATESECATTRIB   (-3022)
 Error during creation of security attribute. More...
 
#define HTTPClient_EINTERNAL   (-3023)
 General internal error. More...
 
#define HTTPClient_EGETCUSOMHEADERBUFSMALL   (-3024)
 Buffer inserted into HTTPClient_getHeaderByName(..) is not big enough. More...
 
#define HTTPClient_ENOHEADERNAMEDASINSERTED   (-3025)
 Custom response header name on HTTPClient_getHeaderByName(..) dosn't set before. More...
 
#define HTTPClient_IGNORE_PROXY   (0x01)
 
#define HTTPClient_HOST_EXIST   (0x02)
 
#define HTTPClient_HFIELD_NOT_PERSISTENT   (0x01)
 
#define HTTPClient_HFIELD_PERSISTENT   (0x02)
 
#define HTTPClient_CUSTOM_RESPONSE_HEADER   (0x01)
 
#define HTTPClient_CHUNK_START   (0x01)
 
#define HTTPClient_CHUNK_END   (0x02)
 
#define HTTPClient_DROP_BODY   (0x04)
 

Typedefs

typedef struct HTTPClient_extSecParams HTTPClient_extSecParams
 
typedef int16_t(* HTTPClient_authenticationCallback) (const char *serverAuthBuff, uint32_t serverAuthLen, char *clientAuthBuff, uint32_t *clientAuthLen)
 HTTPClient callback for server authentication handling This function is responsible for generating the value for the authorization request header. More...
 
typedef void * HTTPClient_Handle
 

Functions

HTTPClient_Handle HTTPClient_create (int16_t *status, void *params)
 Allocate and initialize a new HTTPClient instance object and return its handle. More...
 
int16_t HTTPClient_destroy (HTTPClient_Handle client)
 Destroy the HTTP client instance and free the previously allocated instance object. More...
 
int16_t HTTPClient_connect2 (HTTPClient_Handle client, const char *hostName, SlNetSockSecAttrib_t *secAttribs, uint32_t flags, int16_t *secureRetVal)
 Open a connection to an HTTP server. A user can connect to a HTTP server using TLS, proxy or both. HTTPClient_connect2 allows the user more control over security by accepting a secure attribute object and returning the value of the attempted secure connection. More...
 
int16_t HTTPClient_connect (HTTPClient_Handle client, const char *hostName, HTTPClient_extSecParams *exSecParams, uint32_t flags)
 Open a connection to an HTTP server. A user can connect to a HTTP server using TLS, proxy or both. More...
 
int16_t HTTPClient_disconnect (HTTPClient_Handle client)
 Disconnect from the HTTP server. More...
 
int16_t HTTPClient_sendRequest (HTTPClient_Handle client, const char *method, const char *requestURI, const char *body, uint32_t bodyLen, uint32_t flags)
 Make an HTTP request to the HTTP server. More...
 
int16_t HTTPClient_readResponseBody (HTTPClient_Handle client, char *body, uint32_t bodyLen, bool *moreDataFlag)
 Read the response body data from the HTTP server The function handles both oneshot and chunked body responses. More...
 
int16_t HTTPClient_setHeader (HTTPClient_Handle client, uint32_t option, void *value, uint32_t len, uint32_t flags)
 Setting HTTP Client Header-field configurations. More...
 
int16_t HTTPClient_setHeaderByName (HTTPClient_Handle client, uint32_t option, const char *name, void *value, uint32_t len, uint32_t flags)
 Setting HTTP Client Header-field configurations by header name. Both standard (as defined by the HTTP RFC spec) and non-standard header names are supported. This API supports request and response headers. More...
 
int16_t HTTPClient_getHeader (HTTPClient_Handle client, uint32_t option, void *value, uint32_t *len, uint32_t flags)
 Getting HTTP Client Header-field configurations. More...
 
int16_t HTTPClient_getHeaderByName (HTTPClient_Handle client, uint32_t option, const char *name, void *value, uint32_t *len, uint32_t flags)
 Getting HTTP Client Header-field configurations. This API doesn't support removing existing custom header name, to do so please close the HTTPClient and reallocate it. This API for now, supports only custom 'response' headers. More...
 
const char * HTTPClient_headerIdToName (uint32_t id)
 Convert a header ID to the associated header name. More...
 
int16_t HTTPClient_setOpt (HTTPClient_Handle client, uint32_t option, void *value, uint32_t len, uint32_t flags)
 Setting HTTP Client configurations. More...
 
int16_t HTTPClient_getOpt (HTTPClient_Handle client, uint32_t option, void *value, uint32_t *len, uint32_t flags)
 Getting HTTP Client configurations. More...
 
void HTTPClient_setProxy (const SlNetSock_Addr_t *addr)
 Uses the http CONNECT method to create a tunnel through a remote proxy server to the host designated in HTTPClient_connect. More...
 

Variables

const char * HTTP_METHOD_GET
 
const char * HTTP_METHOD_POST
 
const char * HTTP_METHOD_HEAD
 
const char * HTTP_METHOD_OPTIONS
 
const char * HTTP_METHOD_PUT
 
const char * HTTP_METHOD_DELETE
 
const char * HTTP_METHOD_CONNECT
 
© Copyright 1995-2020, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale