Network Services API  1.40.00.04
httpcli.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2017, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 #ifndef ti_net_http_HTTPCli__include
33 #define ti_net_http_HTTPCli__include
34 
274 #ifdef __cplusplus
275 extern "C" {
276 #endif
277 
278 #include <stdbool.h>
279 #include <ti/net/ssock.h>
280 #include <ti/net/tls.h>
281 #include <ti/net/http/httpstd.h>
282 
287 #ifndef HTTPCli_BUF_LEN
288 #define HTTPCli_BUF_LEN 128
289 #endif
290 
292 #define HTTPCli_RECV_BUFLEN 32
293 
303 #define HTTPCli_ESOCKETFAIL (-101)
304 
310 #define HTTPCli_ECONNECTFAIL (-102)
311 
317 #define HTTPCli_ESENDFAIL (-103)
318 
324 #define HTTPCli_ERECVFAIL (-104)
325 
331 #define HTTPCli_ETLSFAIL (-105)
332 
336 #define HTTPCli_EHOSTNAME (-106)
337 
344 #define HTTPCli_ESENDBUFSMALL (-107)
345 
352 #define HTTPCli_ERECVBUFSMALL (-108)
353 
357 #define HTTPCli_EASYNCMODE (-109)
358 
362 #define HTTPCli_ETHREADFAIL (-110)
363 
367 #define HTTPCli_EPROXYTUNNELFAIL (-111)
368 
372 #define HTTPCli_ERESPONSEINVALID (-112)
373 
380 #define HTTPCli_ECONTENTLENLARGE (-114)
381 
388 #define HTTPCli_EREDIRECTURILONG (-115)
389 
393 #define HTTPCli_ECONTENTTYPELONG (-116)
394 
401 #define HTTPCli_ENOCONTENTCALLBACK (-117)
402 
406 #define HTTPCli_ENOTCHUNKDATA (-118)
407 
411 #define HTTPCli_EINPROGRESS (-119)
412 
416 #define HTTPCli_EINTERNALBUFSMALL (-120)
417 
421 #define HTTPCli_ESETNOTIFYFAIL (-121)
422 
429 #define HTTPCli_EURILENLONG (-122)
430 
438 #define HTTPCli_EHOSTFIELDNOTFOUND (-123)
439 
441 #ifdef ti_net_http_HTTPCli__deprecated
442 
445 /* Standard ports */
446 #define HTTP_PORT HTTPStd_PORT
447 #define HTTPS_PORT HTTPStd_SECURE_PORT
448 
449 /* HTTP Status Codes */
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
491 
492 /* HTTP methods */
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
500 
501 /* HTTP Request Field Name */
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
557 
558 #endif
559 
564 #define HTTPCli_TYPE_TLS (0x02)
565 #define HTTPCli_TYPE_IPV6 (0x04)
566 
573 #define HTTPCli_FIELD_ID_DUMMY (-11)
574 #define HTTPCli_FIELD_ID_END (-12)
575 
580 typedef struct HTTPCli_Field {
581  const char *name;
582  const char *value;
583 } HTTPCli_Field;
584 
592 typedef void (*HTTPCli_StatusCallback)(void *cli, int status);
593 
597 typedef struct HTTPCli_StatusHandler {
602 
618 typedef int (*HTTPCli_ContentCallback)(void *cli, int status, char *body,
619  int len, bool moreFlag);
620 
624 typedef struct HTTPCli_ContentHandler {
625  char *contentType;
628 
638 typedef void (*HTTPCli_RedirectCallback)(void *cli, int status, char *uri);
639 
650 typedef void (*HTTPCli_Notify)(long skt, void *cli);
660 typedef struct HTTPCli_Struct {
661  char **respFields;
662  int sockerr;
663  unsigned int state;
664  unsigned long clen;
665  Ssock_Struct ssock;
667 
668  char buf[HTTPCli_BUF_LEN];
669  unsigned int buflen;
670  char *bufptr;
671 
673 #ifndef HTTPCli_LIBTYPE_MIN
677 #ifndef __linux__
678  unsigned int stackSize;
679  unsigned int priority;
680 #endif
681 #endif
682 
684 
692 typedef struct HTTPCli_Params {
693 
695 #ifndef HTTPCli_LIBTYPE_MIN
699 #ifndef __linux__
700  unsigned int stackSize;
701  unsigned int priority;
702 #endif
703 #endif
704 
705 #ifdef NET_SLP
706  HTTPCli_Notify rnotify;
707  HTTPCli_Notify wnotify;
708  HTTPCli_Notify enotify;
709 #endif
710 
711 #ifndef NET_SLP
712  int timeout;
714 #endif
715 
717 
719 
725 extern void HTTPCli_Params_init(HTTPCli_Params *params);
726 
745 extern int HTTPCli_initSockAddr(struct sockaddr *addr, const char *uri,
746  int flags);
747 
753 extern void HTTPCli_construct(HTTPCli_Struct *cli);
754 
760 extern HTTPCli_Handle HTTPCli_create();
761 
775 extern int HTTPCli_connect(HTTPCli_Handle cli, const struct sockaddr *addr,
776  int flags, const HTTPCli_Params *params);
777 
784 extern void HTTPCli_delete(HTTPCli_Handle *cli);
785 
791 extern void HTTPCli_destruct(HTTPCli_Struct *cli);
792 
798 extern void HTTPCli_disconnect(HTTPCli_Handle cli);
799 
813 extern HTTPCli_Field *HTTPCli_setRequestFields(HTTPCli_Handle cli,
814  const HTTPCli_Field *fields);
815 
829 extern char **HTTPCli_setResponseFields(HTTPCli_Handle cli,
830  const char *fields[]);
831 
855 extern int HTTPCli_sendRequest(HTTPCli_Handle cli, const char *method,
856  const char *requestURI, bool moreFlag);
857 
875 extern int HTTPCli_sendField(HTTPCli_Handle cli, const char *name,
876  const char *value, bool lastFlag);
877 
892 extern int HTTPCli_sendRequestBody(HTTPCli_Handle cli, const char *body,
893  int len);
894 
906 extern int HTTPCli_getResponseStatus(HTTPCli_Handle cli);
907 
931 extern int HTTPCli_getResponseField(HTTPCli_Handle cli, char *value,
932  int len, bool *moreFlag);
933 
952 extern int HTTPCli_readResponseHeader(HTTPCli_Handle cli, char *header,
953  int len, bool *moreFlag);
954 
975 extern int HTTPCli_readResponseBody(HTTPCli_Handle cli, char *body,
976  int len, bool *moreFlag);
977 
994 extern int HTTPCli_readRawResponseBody(HTTPCli_Handle cli, char *body, int len);
995 
1001 extern void HTTPCli_setProxy(const struct sockaddr *addr);
1002 
1019 extern int HTTPCli_getSocketError(HTTPCli_Handle cli);
1020 
1021 #ifdef __cplusplus
1022 }
1023 #endif
1024 
1026 #endif
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
Copyright 2017, Texas Instruments Incorporated