32 #ifndef ti_net_http_HTTPCli__include 33 #define ti_net_http_HTTPCli__include 279 #include <ti/net/ssock.h> 287 #ifndef HTTPCli_BUF_LEN 288 #define HTTPCli_BUF_LEN 128 292 #define HTTPCli_RECV_BUFLEN 32 303 #define HTTPCli_ESOCKETFAIL (-101) 310 #define HTTPCli_ECONNECTFAIL (-102) 317 #define HTTPCli_ESENDFAIL (-103) 324 #define HTTPCli_ERECVFAIL (-104) 331 #define HTTPCli_ETLSFAIL (-105) 336 #define HTTPCli_EHOSTNAME (-106) 344 #define HTTPCli_ESENDBUFSMALL (-107) 352 #define HTTPCli_ERECVBUFSMALL (-108) 357 #define HTTPCli_EASYNCMODE (-109) 362 #define HTTPCli_ETHREADFAIL (-110) 367 #define HTTPCli_EPROXYTUNNELFAIL (-111) 372 #define HTTPCli_ERESPONSEINVALID (-112) 380 #define HTTPCli_ECONTENTLENLARGE (-114) 388 #define HTTPCli_EREDIRECTURILONG (-115) 393 #define HTTPCli_ECONTENTTYPELONG (-116) 401 #define HTTPCli_ENOCONTENTCALLBACK (-117) 406 #define HTTPCli_ENOTCHUNKDATA (-118) 411 #define HTTPCli_EINPROGRESS (-119) 416 #define HTTPCli_EINTERNALBUFSMALL (-120) 421 #define HTTPCli_ESETNOTIFYFAIL (-121) 429 #define HTTPCli_EURILENLONG (-122) 438 #define HTTPCli_EHOSTFIELDNOTFOUND (-123) 441 #ifdef ti_net_http_HTTPCli__deprecated 446 #define HTTP_PORT HTTPStd_PORT 447 #define HTTPS_PORT HTTPStd_SECURE_PORT 450 #define HTTP_CONTINUE HTTPStd_CONTINUE 451 #define HTTP_SWITCHING_PROTOCOLS HTTPStd_SWITCHING_PROTOCOLS 452 #define HTTP_OK HTTPStd_OK 453 #define HTTP_CREATED HTTPStd_CREATED 454 #define HTTP_ACCEPTED HTTPStd_ACCEPTED 455 #define HTTP_NON_AUTHORITATIVE_INFORMATION HTTPStd_NON_AUTHORITATIVE_INFORMATION 456 #define HTTP_NO_CONTENT HTTPStd_NO_CONTENT 457 #define HTTP_RESET_CONTENT HTTPStd_RESET_CONTENT 458 #define HTTP_PARTIAL_CONTENT HTTPStd_PARTIAL_CONTENT 459 #define HTTP_MULTIPLE_CHOICES HTTPStd_MULTIPLE_CHOICES 460 #define HTTP_MOVED_PERMANENTLY HTTPStd_MOVED_PERMANENTLY 461 #define HTTP_FOUND HTTPStd_FOUND 462 #define HTTP_SEE_OTHER HTTPStd_SEE_OTHER 463 #define HTTP_NOT_MODIFIED HTTPStd_NOT_MODIFIED 464 #define HTTP_USE_PROXY HTTPStd_USE_PROXY 465 #define HTTP_TEMPORARY_REDIRECT HTTPStd_TEMPORARY_REDIRECT 466 #define HTTP_BAD_REQUEST HTTPStd_BAD_REQUEST 467 #define HTTP_UNAUTHORIZED HTTPStd_UNAUTHORIZED 468 #define HTTP_PAYMENT_REQUIRED HTTPStd_PAYMENT_REQUIRED 469 #define HTTP_FORBIDDEN HTTPStd_FORBIDDEN 470 #define HTTP_NOT_FOUND HTTPStd_NOT_FOUND 471 #define HTTP_METHOD_NOT_ALLOWED HTTPStd_METHOD_NOT_ALLOWED 472 #define HTTP_NOT_ACCEPTABLE HTTPStd_NOT_ACCEPTABLE 473 #define HTTP_PROXY_AUTHENTICATION_REQUIRED HTTPStd_PROXY_AUTHENTICATION_REQUIRED 474 #define HTTP_REQUEST_TIMEOUT HTTPStd_REQUEST_TIMEOUT 475 #define HTTP_CONFLICT HTTPStd_CONFLICT 476 #define HTTP_GONE HTTPStd_GONE 477 #define HTTP_LENGTH_REQUIRED HTTPStd_LENGTH_REQUIRED 478 #define HTTP_PRECONDITION_FAILED HTTPStd_PRECONDITION_FAILED 479 #define HTTP_REQUEST_ENTITY_TOO_LARGE HTTPStd_REQUEST_ENTITY_TOO_LARGE 480 #define HTTP_REQUEST_URI_TOO_LONG HTTPStd_REQUEST_URI_TOO_LONG 481 #define HTTP_UNSUPPORTED_MEDIA_TYPE HTTPStd_UNSUPPORTED_MEDIA_TYPE 482 #define HTTP_REQUESTED_RANGE_NOT_SATISFAIABLE \ 483 HTTPStd_REQUESTED_RANGE_NOT_SATISFAIABLE 484 #define HTTP_EXPECTATION_FAILED HTTPStd_EXPECTATION_FAILED 485 #define HTTP_INTERNAL_SERVER_ERROR HTTPStd_INTERNAL_SERVER_ERROR 486 #define HTTP_NOT_IMPLEMENTED HTTPStd_NOT_IMPLEMENTED 487 #define HTTP_BAD_GATEWAY HTTPStd_BAD_GATEWAY 488 #define HTTP_SERVICE_UNAVAILABLE HTTPStd_SERVICE_UNAVAILABLE 489 #define HTTP_GATEWAY_TIMEOUT HTTPStd_GATEWAY_TIMEOUT 490 #define HTTP_HTTP_VERSION_NOT_SUPPORTED HTTPStd_HTTP_VERSION_NOT_SUPPORTED 493 #define HTTPCli_METHOD_GET HTTPStd_GET 494 #define HTTPCli_METHOD_POST HTTPStd_POST 495 #define HTTPCli_METHOD_HEAD HTTPStd_HEAD 496 #define HTTPCli_METHOD_OPTIONS HTTPStd_OPTIONS 497 #define HTTPCli_METHOD_PUT HTTPStd_PUT 498 #define HTTPCli_METHOD_DELETE HTTPStd_DELETE 499 #define HTTPCli_METHOD_CONNECT HTTPStd_CONNECT 502 #define HTTPCli_FIELD_NAME_ACCEPT HTTPStd_FIELD_NAME_ACCEPT 503 #define HTTPCli_FIELD_NAME_ACCEPT_CHARSET HTTPStd_FIELD_NAME_ACCEPT_CHARSET 504 #define HTTPCli_FIELD_NAME_ACCEPT_ENCODING HTTPStd_FIELD_NAME_ACCEPT_ENCODING 505 #define HTTPCli_FIELD_NAME_ACCEPT_LANGUAGE HTTPStd_FIELD_NAME_ACCEPT_LANGUAGE 506 #define HTTPCli_FIELD_NAME_ACCEPT_RANGES HTTPStd_FIELD_NAME_ACCEPT_RANGES 507 #define HTTPCli_FIELD_NAME_AGE HTTPStd_FIELD_NAME_AGE 508 #define HTTPCli_FIELD_NAME_ALLOW HTTPStd_FIELD_NAME_ALLOW 509 #define HTTPCli_FIELD_NAME_AUTHORIZATION HTTPStd_FIELD_NAME_AUTHORIZATION 510 #define HTTPCli_FIELD_NAME_CACHE_CONTROL HTTPStd_FIELD_NAME_CACHE_CONTROL 511 #define HTTPCli_FIELD_NAME_CONNECTION HTTPStd_FIELD_NAME_CONNECTION 512 #define HTTPCli_FIELD_NAME_CONTENT_ENCODING HTTPStd_FIELD_NAME_CONTENT_ENCODING 513 #define HTTPCli_FIELD_NAME_CONTENT_LANGUAGE HTTPStd_FIELD_NAME_CONTENT_LANGUAGE 514 #define HTTPCli_FIELD_NAME_CONTENT_LENGTH HTTPStd_FIELD_NAME_CONTENT_LENGTH 515 #define HTTPCli_FIELD_NAME_CONTENT_LOCATION HTTPStd_FIELD_NAME_CONTENT_LOCATION 516 #define HTTPCli_FIELD_NAME_CONTENT_MD5 HTTPStd_FIELD_NAME_CONTENT_MD5 517 #define HTTPCli_FIELD_NAME_CONTENT_RANGE HTTPStd_FIELD_NAME_CONTENT_RANGE 518 #define HTTPCli_FIELD_NAME_CONTENT_TYPE HTTPStd_FIELD_NAME_CONTENT_TYPE 519 #define HTTPCli_FIELD_NAME_COOKIE HTTPStd_FIELD_NAME_COOKIE 520 #define HTTPCli_FIELD_NAME_DATE HTTPStd_FIELD_NAME_DATE 521 #define HTTPCli_FIELD_NAME_ETAG HTTPStd_FIELD_NAME_ETAG 522 #define HTTPCli_FIELD_NAME_EXPECT HTTPStd_FIELD_NAME_EXPECT 523 #define HTTPCli_FIELD_NAME_EXPIRES HTTPStd_FIELD_NAME_EXPIRES 524 #define HTTPCli_FIELD_NAME_FROM HTTPStd_FIELD_NAME_FROM 525 #define HTTPCli_FIELD_NAME_HOST HTTPStd_FIELD_NAME_HOST 526 #define HTTPCli_FIELD_NAME_IF_MATCH HTTPStd_FIELD_NAME_IF_MATCH 527 #define HTTPCli_FIELD_NAME_IF_MODIFIED_SINCE \ 528 HTTPStd_FIELD_NAME_IF_MODIFIED_SINCE 529 #define HTTPCli_FIELD_NAME_IF_NONE_MATCH HTTPStd_FIELD_NAME_IF_NONE_MATCH 530 #define HTTPCli_FIELD_NAME_IF_RANGE HTTPStd_FIELD_NAME_IF_RANGE 531 #define HTTPCli_FIELD_NAME_IF_UNMODIFIED_SINCE \ 532 HTTPStd_FIELD_NAME_IF_UNMODIFIED_SINCE 533 #define HTTPCli_FIELD_NAME_LAST_MODIFIED HTTPStd_FIELD_NAME_LAST_MODIFIED 534 #define HTTPCli_FIELD_NAME_LOCATION HTTPStd_FIELD_NAME_LOCATION 535 #define HTTPCli_FIELD_NAME_MAX_FORWARDS HTTPStd_FIELD_NAME_MAX_FORWARDS 536 #define HTTPCli_FIELD_NAME_ORIGIN HTTPStd_FIELD_NAME_ORIGIN 537 #define HTTPCli_FIELD_NAME_PRAGMA HTTPStd_FIELD_NAME_PRAGMA 538 #define HTTPCli_FIELD_NAME_PROXY_AUTHENTICATE \ 539 HTTPStd_FIELD_NAME_PROXY_AUTHENTICATE 540 #define HTTPCli_FIELD_NAME_PROXY_AUTHORIZATION \ 541 HTTPStd_FIELD_NAME_PROXY_AUTHORIZATION 542 #define HTTPCli_FIELD_NAME_RANGE HTTPStd_FIELD_NAME_RANGE 543 #define HTTPCli_FIELD_NAME_REFERER HTTPStd_FIELD_NAME_REFERER 544 #define HTTPCli_FIELD_NAME_RETRY_AFTER HTTPStd_FIELD_NAME_RETRY_AFTER 545 #define HTTPCli_FIELD_NAME_SERVER HTTPStd_FIELD_NAME_SERVER 546 #define HTTPCli_FIELD_NAME_TE HTTPStd_FIELD_NAME_TE 547 #define HTTPCli_FIELD_NAME_TRAILER HTTPStd_FIELD_NAME_TRAILER 548 #define HTTPCli_FIELD_NAME_TRANSFER_ENCODING \ 549 HTTPStd_FIELD_NAME_TRANSFER_ENCODING 550 #define HTTPCli_FIELD_NAME_UPGRADE HTTPStd_FIELD_NAME_UPGRADE 551 #define HTTPCli_FIELD_NAME_USER_AGENT HTTPStd_FIELD_NAME_USER_AGENT 552 #define HTTPCli_FIELD_NAME_VARY HTTPStd_FIELD_NAME_VARY 553 #define HTTPCli_FIELD_NAME_VIA HTTPStd_FIELD_NAME_VIA 554 #define HTTPCli_FIELD_NAME_WWW_AUTHENTICATE HTTPStd_FIELD_NAME_WWW_AUTHENTICATE 555 #define HTTPCli_FIELD_NAME_WARNING HTTPStd_FIELD_NAME_WARNING 556 #define HTTPCli_FIELD_NAME_X_FORWARDED_FOR HTTPStd_FIELD_NAME_X_FORWARDED_FOR 564 #define HTTPCli_TYPE_TLS (0x02) 565 #define HTTPCli_TYPE_IPV6 (0x04) 573 #define HTTPCli_FIELD_ID_DUMMY (-11) 574 #define HTTPCli_FIELD_ID_END (-12) 619 int len,
bool moreFlag);
650 typedef void (*HTTPCli_Notify)(
long skt,
void *cli);
673 #ifndef HTTPCli_LIBTYPE_MIN 695 #ifndef HTTPCli_LIBTYPE_MIN 706 HTTPCli_Notify rnotify;
707 HTTPCli_Notify wnotify;
708 HTTPCli_Notify enotify;
775 extern int HTTPCli_connect(HTTPCli_Handle cli,
const struct sockaddr *addr,
830 const char *fields[]);
856 const char *requestURI,
bool moreFlag);
876 const char *
value,
bool lastFlag);
932 int len,
bool *moreFlag);
953 int len,
bool *moreFlag);
976 int len,
bool *moreFlag);
TLS_Handle tls
Definition: httpcli.h:694
char * bufptr
Definition: httpcli.h:670
int HTTPCli_readResponseBody(HTTPCli_Handle cli, char *body, int len, bool *moreFlag)
Read the parsed response body data from the HTTP server.
int HTTPCli_getSocketError(HTTPCli_Handle cli)
Get the error code from the socket/TLS layer.
HTTPCli_Struct * HTTPCli_Handle
Definition: httpcli.h:718
HTTPCli instance paramaters.
Definition: httpcli.h:692
HTTPCli_StatusHandler * shandle
Definition: httpcli.h:696
struct HTTPCli_ContentHandler HTTPCli_ContentHandler
HTTPCli content handler type.
unsigned long clen
Definition: httpcli.h:664
int HTTPCli_sendField(HTTPCli_Handle cli, const char *name, const char *value, bool lastFlag)
Send an header field to the HTTP server.
void HTTPCli_setProxy(const struct sockaddr *addr)
Set the proxy address.
void HTTPCli_Params_init(HTTPCli_Params *params)
Initialize the HTTPCli Params structure to default values.
Standard Definitions for HTTP Status Codes, Content Type and Fields.
HTTPCli_RedirectCallback rhandle
Definition: httpcli.h:676
int HTTPCli_connect(HTTPCli_Handle cli, const struct sockaddr *addr, int flags, const HTTPCli_Params *params)
Open a connection to an HTTP server.
struct HTTPCli_StatusHandler HTTPCli_StatusHandler
HTTPCli response status code handler type.
HTTPCli_Field * HTTPCli_setRequestFields(HTTPCli_Handle cli, const HTTPCli_Field *fields)
Set an array of header fields to be sent for every HTTP request.
unsigned int buflen
Definition: httpcli.h:669
void HTTPCli_delete(HTTPCli_Handle *cli)
Destroy the HTTP client instance and free the previously allocated instance object.
void * TLS_Handle
Definition: tls.h:168
unsigned int state
Definition: httpcli.h:663
int HTTPCli_sendRequestBody(HTTPCli_Handle cli, const char *body, int len)
Send the request message body to the HTTP server.
HTTPCli_Field * fields
Definition: httpcli.h:666
void(* HTTPCli_RedirectCallback)(void *cli, int status, char *uri)
HTTPCli callback function prototype for redirection handling.
Definition: httpcli.h:638
HTTPCli request header field.
Definition: httpcli.h:580
HTTPCli_StatusHandler * shandle
Definition: httpcli.h:674
const char * value
Definition: httpcli.h:582
HTTPCli_Handle HTTPCli_create()
Allocate and initialize a new instance object and return its handle.
HTTPCli_ContentHandler * chandle
Definition: httpcli.h:697
HTTPCli instance type.
Definition: httpcli.h:660
int HTTPCli_sendRequest(HTTPCli_Handle cli, const char *method, const char *requestURI, bool moreFlag)
Make an HTTP 1.1 request to the HTTP server.
int timeout
Definition: httpcli.h:712
unsigned int priority
Definition: httpcli.h:701
int HTTPCli_getResponseField(HTTPCli_Handle cli, char *value, int len, bool *moreFlag)
Process a response header from the HTTP server and return field.
#define HTTPCli_BUF_LEN
Definition: httpcli.h:288
HTTPCli_StatusCallback handle1xx
Definition: httpcli.h:598
char ** respFields
Definition: httpcli.h:661
HTTPCli_StatusCallback handle4xx
Definition: httpcli.h:600
HTTPCli response status code handler type.
Definition: httpcli.h:597
int HTTPCli_initSockAddr(struct sockaddr *addr, const char *uri, int flags)
Initialize the socket address structure for the given URI.
HTTPCli_ContentHandler * chandle
Definition: httpcli.h:675
int sockerr
Definition: httpcli.h:662
TLS_Handle tls
Definition: httpcli.h:672
HTTPCli content handler type.
Definition: httpcli.h:624
void HTTPCli_construct(HTTPCli_Struct *cli)
Create a new instance object in the provided structure.
HTTPCli_StatusCallback handle2xx
Definition: httpcli.h:599
struct HTTPCli_Struct HTTPCli_Struct
HTTPCli instance type.
char * contentType
Definition: httpcli.h:625
HTTPCli_ContentCallback handle
Definition: httpcli.h:626
void(* HTTPCli_StatusCallback)(void *cli, int status)
HTTPCli callback function for status handling.
Definition: httpcli.h:592
struct HTTPCli_Field HTTPCli_Field
HTTPCli request header field.
unsigned int priority
Definition: httpcli.h:679
struct HTTPCli_Params HTTPCli_Params
HTTPCli instance paramaters.
void HTTPCli_disconnect(HTTPCli_Handle cli)
Disconnect from the HTTP server and destroy the HTTP client instance.
const char * name
Definition: httpcli.h:581
int HTTPCli_readRawResponseBody(HTTPCli_Handle cli, char *body, int len)
Read the raw response message body from the HTTP server.
unsigned int stackSize
Definition: httpcli.h:678
int HTTPCli_readResponseHeader(HTTPCli_Handle cli, char *header, int len, bool *moreFlag)
Read a response header from the HTTP server.
Ssock_Struct ssock
Definition: httpcli.h:665
int(* HTTPCli_ContentCallback)(void *cli, int status, char *body, int len, bool moreFlag)
HTTPCli callback function for content handling.
Definition: httpcli.h:618
void HTTPCli_destruct(HTTPCli_Struct *cli)
Destroy the HTTP client instance.
unsigned int stackSize
Definition: httpcli.h:700
char ** HTTPCli_setResponseFields(HTTPCli_Handle cli, const char *fields[])
Set the header fields to filter the response headers.
int HTTPCli_getResponseStatus(HTTPCli_Handle cli)
Process the response header from the HTTP server and return status.
HTTPCli_RedirectCallback rhandle
Definition: httpcli.h:698