Network Services API  2.70.01.02
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 recieved 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_IGNORE_PROXY   (0x01)
 
#define HTTPClient_HOST_EXIST   (0x02)
 
#define HTTPClient_HFIELD_NOT_PERSISTENT   (0x01)
 
#define HTTPClient_HFIELD_PERSISTENT   (0x02)
 
#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 currently only supports request 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_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-2019, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale