Network Services API  2.30.00.10
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
httpclient.h File Reference
#include <stdbool.h>
#include <ti/net/slnetsock.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)
 
#define HTTPClient_HFIELD_RES_ALLOW   (1)
 
#define HTTPClient_HFIELD_RES_CACHE_CONTROL   (2)
 
#define HTTPClient_HFIELD_RES_CONNECTION   (3)
 
#define HTTPClient_HFIELD_RES_CONTENT_ENCODING   (4)
 
#define HTTPClient_HFIELD_RES_CONTENT_LANGUAGE   (5)
 
#define HTTPClient_HFIELD_RES_CONTENT_LENGTH   (6)
 
#define HTTPClient_HFIELD_RES_CONTENT_LOCATION   (7)
 
#define HTTPClient_HFIELD_RES_CONTENT_RANGE   (8)
 
#define HTTPClient_HFIELD_RES_CONTENT_TYPE   (9)
 
#define HTTPClient_HFIELD_RES_DATE   (10)
 
#define HTTPClient_HFIELD_RES_ETAG   (11)
 
#define HTTPClient_HFIELD_RES_EXPIRES   (12)
 
#define HTTPClient_HFIELD_RES_LAST_MODIFIED   (13)
 
#define HTTPClient_HFIELD_RES_LOCATION   (14)
 
#define HTTPClient_HFIELD_RES_PROXY_AUTHENTICATE   (15)
 
#define HTTPClient_HFIELD_RES_RETRY_AFTER   (16)
 
#define HTTPClient_HFIELD_RES_SERVER   (17)
 
#define HTTPClient_HFIELD_RES_SET_COOKIE   (18)
 
#define HTTPClient_HFIELD_RES_TRAILER   (19)
 
#define HTTPClient_HFIELD_RES_TRANSFER_ENCODING   (20)
 
#define HTTPClient_HFIELD_RES_UPGRADE   (21)
 
#define HTTPClient_HFIELD_RES_VARY   (22)
 
#define HTTPClient_HFIELD_RES_VIA   (23)
 
#define HTTPClient_HFIELD_RES_WWW_AUTHENTICATE   (24)
 
#define HTTPClient_HFIELD_RES_WARNING   (25)
 
#define HTTPClient_REQUEST_HEADER_MASK   (0x80000000)
 
#define HTTPClient_HFIELD_REQ_ACCEPT   (26 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_ACCEPT_CHARSET   (27 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_ACCEPT_ENCODING   (28 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_ACCEPT_LANGUAGE   (29 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_ALLOW   (HTTPClient_HFIELD_RES_ALLOW | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_AUTHORIZATION   (30 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_CACHE_CONTROL   (HTTPClient_HFIELD_RES_CACHE_CONTROL | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_CONNECTION   (HTTPClient_HFIELD_RES_CONNECTION | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_CONTENT_ENCODING   (HTTPClient_HFIELD_RES_CONTENT_ENCODING | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_CONTENT_LANGUAGE   (HTTPClient_HFIELD_RES_CONTENT_LANGUAGE | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_CONTENT_LOCATION   (HTTPClient_HFIELD_RES_CONTENT_LOCATION | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_CONTENT_TYPE   (HTTPClient_HFIELD_RES_CONTENT_TYPE | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_COOKIE   (31 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_DATE   (HTTPClient_HFIELD_RES_DATE | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_EXPECT   (32 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_FORWARDED   (33 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_FROM   (34 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_HOST   (35 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_IF_MATCH   (36 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_IF_MODIFIED_SINCE   (37 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_IF_NONE_MATCH   (38 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_IF_RANGE   (39 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_IF_UNMODIFIED_SINCE   (40 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_ORIGIN   (41 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_PROXY_AUTHORIZATION   (42 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_RANGE   (43 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_TE   (44 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_TRANSFER_ENCODING   (HTTPClient_HFIELD_RES_TRANSFER_ENCODING | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_UPGRADE   (HTTPClient_HFIELD_RES_UPGRADE | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_USER_AGENT   (45 | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_VIA   (HTTPClient_HFIELD_RES_VIA | HTTPClient_REQUEST_HEADER_MASK)
 
#define HTTPClient_HFIELD_REQ_WARNING   (HTTPClient_HFIELD_RES_WARNING | HTTPClient_REQUEST_HEADER_MASK)
 
#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
 

Enumerations

enum  HTTP_STATUS_CODE {
  HTTP_SC_CONTINUE = 100,
  HTTP_SC_SWITCHING_PROTOCOLS = 101,
  HTTP_SC_OK = 200,
  HTTP_SC_CREATED = 201,
  HTTP_SC_ACCEPTED = 202,
  HTTP_SC_NON_AUTHORITATIVE_INFORMATION = 203,
  HTTP_SC_NO_CONTENT = 204,
  HTTP_SC_RESET_CONTENT = 205,
  HTTP_SC_PARTIAL_CONTENT = 206,
  HTTP_SC_MULTI_STATUS = 207,
  HTTP_SC_MULTIPLE_CHOICES = 300,
  HTTP_SC_MOVED_PERMANENTLY = 301,
  HTTP_SC_FOUND = 302,
  HTTP_SC_SEE_OTHER = 303,
  HTTP_SC_NOT_MODIFIED = 304,
  HTTP_SC_TEMPORARY_REDIRECT = 307,
  HTTP_SC_BAD_REQUEST = 400,
  HTTP_SC_UNAUTHORIZED = 401,
  HTTP_SC_PAYMENT_REQUIRED = 402,
  HTTP_SC_FORBIDDEN = 403,
  HTTP_SC_NOT_FOUND = 404,
  HTTP_SC_METHOD_NOT_ALLOWED = 405,
  HTTP_SC_NOT_ACCEPTABLE = 406,
  HTTP_SC_PROXY_AUTHENTICATION_REQUIRED = 407,
  HTTP_SC_REQUEST_TIMEOUT = 408,
  HTTP_SC_CONFLICT = 409,
  HTTP_SC_GONE = 410,
  HTTP_SC_LENGTH_REQUIRED = 411,
  HTTP_SC_PRECONDITION_FAILED = 412,
  HTTP_SC_REQUEST_ENTITY_TOO_LARGE = 413,
  HTTP_SC_REQUEST_URI_TOO_LONG = 414,
  HTTP_SC_UNSUPPORTED_MEDIA_TYPE = 415,
  HTTP_SC_REQUESTED_RANGE_NOT_SATISFAIABLE = 416,
  HTTP_SC_EXPECTATION_FAILED = 417,
  HTTP_SC_UNPROCESSABLE_ENTITY = 422,
  HTTP_SC_UPGRADE_REQUIRED = 426,
  HTTP_SC_TOO_MANY_REQUESTS = 429,
  HTTP_SC_INTERNAL_SERVER_ERROR = 500,
  HTTP_SC_NOT_IMPLEMENTED = 501,
  HTTP_SC_BAD_GATEWAY = 502,
  HTTP_SC_SERVICE_UNAVAILABLE = 503,
  HTTP_SC_GATEWAY_TIMEOUT = 504,
  HTTP_SC_HTTP_VERSION_NOT_SUPPORTED = 505,
  HTTP_SC_STATUS_CODE_END = 600
}
 

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_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)
 Set the proxy address. 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-2018, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale