17#include <webclient/web_buffers.h>
78 const char *CachedProtoStr;
81 const char *UserAgent;
85 eProtocol_t CachedProto;
88 #ifdef WEB_CLIENT_SSL_SUPPORT
92 int advanceCompareState(
int state);
93 bool equals(
const char *pUrl);
135 return ((ValidUntil == 0xFFFFFFFF)|| (ValidUntil &&(((uint32_t)((int32_t)ValidUntil - ((int32_t)TimeTick))) >= 0)))&& URIBuf[0];
146 if(CachedPath)
return CachedPath;
186 eProtocol_t GetProto()
191 #ifdef WEB_CLIENT_SSL_SUPPORT
213 bool process_fd_dns(
int fd);
217 bool operator==(
const ParsedURI &rhs) {
return equals(rhs); }
218 bool operator!=(
const ParsedURI &rhs) {
return !equals(rhs); }
219 void SetUserAgent(
const char* ua){UserAgent=ua;}
220 const char * GetUserAgent() {
return UserAgent; }
232#ifndef WebErrorReporterFunc
233typedef void(WebErrorReporterFunc)(
int ErrorState);
236extern WebErrorReporterFunc *pWebErrorReporter;
253 const char *separator,
255 uint32_t contentLength = 0);
268 const char *separator,
270 uint32_t contentLength = 0);
281void DoMultipartItem(
int tcpfd,
const char *Disposition,
const char *separator,
const unsigned char * data,
int len);
320 buffer_object & result_buffer,
321 uint16_t TIMEOUT_WAIT);
337 buffer_object & result_buffer,
338 uint16_t TIMEOUT_WAIT);
352 const char *Json_Data_To_Post,
353 buffer_object &result_buffer,
354 const char *AdditionalHeaders = NULL,
369 const char *Json_Data_To_Post,
370 buffer_object &result_buffer,
371 const char *AdditionalHeaders = NULL,
387 buffer_object &result_buffer,
388 const char *AdditionalHeaders,
404 buffer_object &result_buffer,
405 const char *AdditionalHeaders,
421 const char *FragmentName,
422 buffer_object &result_buffer,
423 const char *AdditionalHeaders,
438 const char *FragmentName,
439 buffer_object &result_buffer,
440 const char *AdditionalHeaders,
492bool DoGetEx(
const char *pUrl,
const char * headers,buffer_object &result_buffer, uint16_t TIMEOUT_WAIT = 10 *
TICKS_PER_SECOND);
555int DoGetEx(
const char *pUrl,
const char * headers,
unsigned char *result,
int maxl, uint16_t TIMEOUT_WAIT = 10 *
TICKS_PER_SECOND);
560void SetHttpUpDiag(
bool b);
603return StartConnection(TheUri,tt);
607int WriteHttpRequestHeaders(
int fd,
611 const char * content_type=0,
612 const char * extra_header=0);
621int StartTransaction(
ParsedURI &TheUri,
const char *headers = 0,
const char *action =
"GET", uint32_t TIMEOUT_WAIT = 10 *
TICKS_PER_SECOND);
622int StartTransaction(
const char * pUrl,
const char * headers=0,
const char * action=
"GET", uint32_t TIMEOUT_WAIT= 10 *
TICKS_PER_SECOND);
static IPADDR4 NullIP()
C++ static function for a null IP address.
Definition nettypes.h:346
Used to hold and manipulate IPv4 and IPv6 addresses in dual stack mode.
Definition ipv6_addr.h:41
void SetNull()
Set the IP address value of an IPADDR6 object to null.
Definition ipv6_addr.h:288
A class to create, read, and modify a JSON object.
Definition json_lexer.h:530
Parsed Uniform Resource Identifier Class (URI)
Definition http_funcs.h:62
ParsedURI()
Constructor to create a new blank URI object. For rare cases.
bool IsSecure()
Check the security state of the cached URI object. Requires WEB_CLIENT_SSL_SUPPORT be defined in pred...
Definition http_funcs.h:198
const char * GetHost()
Get the cached URI Host name.
Definition http_funcs.h:156
const char * GetPath()
Get the cached URI path.
Definition http_funcs.h:144
bool valid() const
Check to see if URI is valid.
Definition http_funcs.h:133
void Invalidate()
Set the state of the cached URI object to invalid.
Definition http_funcs.h:208
ParsedURI(const char *uri, uint16_t timeout=20 *TICKS_PER_SECOND, bool skipLookup=false)
Constructor to create a new URI object.
Definition http_funcs.h:121
void NewUri(const char *uri, uint16_t timeout=20 *TICKS_PER_SECOND, bool skipLookup=false)
Replace the existing (URI) object with new information.
uint16_t GetPort()
Get the cached URI network port number.
Definition http_funcs.h:181
IPADDR GetAddr()
Get the resolved host Address.
Definition http_funcs.h:167
TickTimeout objects are used to facilitate sequential function calls with timeout parameters that nee...
Definition nbrtos.h:157
NetBurner Domain Name Server Header File.
#define TICKS_PER_SECOND
System clock ticks per second.
Definition nbrtos/include/constants.h:41
int DoGetUpdate(ParsedURI &TheUri, uint16_t TIMEOUT_WAIT=10 *TICKS_PER_SECOND)
Execute a firmware update from the specified URI.
int DoMultipartStartPost(ParsedURI &TheUri, const char *separator, uint16_t TIMEOUT_WAIT=10 *TICKS_PER_SECOND, uint32_t contentLength=0)
Start a multipart HTTP post using a pre-parsed URI object.
void DoMultipartItem(int tcpfd, const char *Disposition, const char *separator, const unsigned char *data, int len)
Send a multipart item.
void DoMultipartBoundary(int tcpfd, const char *Disposition, const char *separator)
Send a multipart boundary.
bool DoJsonPostHttpFile(const char *pUrl, const char *FragmentName, buffer_object &result_buffer, const char *AdditionalHeaders, uint16_t TIMEOUT_WAIT=10 *TICKS_PER_SECOND)
Post a JSON file using HTTP and a URL string.
bool DoMultipartFinished(int tcpfd, const char *separator, buffer_object &result_buffer, uint16_t TIMEOUT_WAIT=10 *TICKS_PER_SECOND)
Send a multipart item.
bool DoGet(ParsedURI &TheUri, buffer_object &result_buffer, uint16_t TIMEOUT_WAIT=10 *TICKS_PER_SECOND)
bool DoGetEx(ParsedURI &TheUri, const char *headers, buffer_object &result_buffer, uint16_t TIMEOUT_WAIT=10 *TICKS_PER_SECOND)
bool DoJsonPost(const char *pUrl, const char *Json_Data_To_Post, buffer_object &result_buffer, const char *AdditionalHeaders=NULL, uint16_t TIMEOUT_WAIT=10 *TICKS_PER_SECOND)
Post a JSON file using a HTTP POST and a URL string and pointer to JSON data.
bool DoUrlEncodedFormPost(ParsedURI &TheUri, char *headers, char *form_data, buffer_object &result_buffer, uint16_t TIMEOUT_WAIT)
Post a JSON file using a HTTP Form Post and a a ParsedURI object.
void SetHttpDiag(bool b)
Enable/disable Web Client HTTP diagnostics to the console port.
int PopulateAuthHeader(const char *user, const char *password, char *buffer, int maxlen)
Fill in a username and password into a buffer for use as an extra header.
NetBurner Real-Time Operating System (NBRTOS) API.
NetBurner IPADDR4 Class. See the IPADDR4 Class page for complete documentation.