HTTP Client#

Functions#

int32_t
rsi_http_credentials(int8_t *username, int8_t *password)

Create an HTTP server credentials request.Set username and password for HTTP server. This is a blocking API.

int32_t
rsi_http_client_get_async(uint8_t flags, uint8_t *ip_address, uint16_t port, uint8_t *resource, uint8_t *host_name, uint8_t *extended_header, uint8_t *user_name, uint8_t *password, #if RSI_HTTP_STATUS_INDICATION_EN void(*http_client_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata, uint16_t status_code) #else void(*http_client_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata) #endif)

Send HTTP get request to remote HTTP server. This is a non-blocking API.

int32_t
rsi_http_client_post_async(uint8_t flags, uint8_t *ip_address, uint16_t port, uint8_t *resource, uint8_t *host_name, uint8_t *extended_header, uint8_t *user_name, uint8_t *password, uint8_t *post_data, uint32_t post_data_length, #if RSI_HTTP_STATUS_INDICATION_EN void(*http_client_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata, uint16_t status_code) #else void(*http_client_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata) #endif)

Send HTTP post request to remote HTTP server. This is a non-blocking API.

int32_t
rsi_http_client_async(uint8_t type, uint8_t flags, uint8_t *ip_address, uint16_t port, uint8_t *resource, uint8_t *host_name, uint8_t *extended_header, uint8_t *user_name, uint8_t *password, uint8_t *post_data, uint32_t post_data_length, #if RSI_HTTP_STATUS_INDICATION_EN void(*callback)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata, uint16_t status_code) #else void(*callback)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata) #endif)

Send HTTP get request/HTTP post request to remote HTTP server based on the type selected. This is a non-blocking API.

int32_t

Abort any ongoing HTTP request from the client. This is a blocking API.

int32_t

Create the HTTP put client. This is a blocking API.

int32_t

Delete the created HTTP put client. This is a non-blocking API.

int32_t
rsi_http_client_put_start(uint8_t flags, uint8_t *ip_address, uint32_t port_number, uint8_t *resource, uint8_t *host_name, uint8_t *extended_header, uint8_t *user_name, uint8_t *password, uint32_t content_length, void(*callback)(uint16_t status, uint8_t type, const uint8_t *buffer, uint16_t length, const uint8_t end_of_put_pkt))

Start the HTTP client put process. This is a non-blocking API.

int32_t
rsi_http_client_put_pkt(uint8_t *file_content, uint16_t current_chunk_length)

Send HTTP data to HTTP server for the created URL resource. This is a blocking API.

int32_t
rsi_http_client_post_data(uint8_t *file_content, uint16_t current_chunk_length, #if RSI_HTTP_STATUS_INDICATION_EN void(*rsi_http_post_data_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata, uint16_t status_code) #else void(*rsi_http_post_data_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata) #endif)

Send the HTTP post data packet to remote HTTP server. This is a non-blocking API.

int32_t
rsi_http_otaf_async(uint8_t type, uint8_t flags, uint8_t *ip_address, uint16_t port, uint8_t *resource, uint8_t *host_name, uint8_t *extended_header, uint8_t *user_name, uint8_t *password, uint8_t *post_data, uint32_t post_data_length, void(*callback)(uint16_t status, const uint8_t *buffer))

Post the HTTP data for the requested URL to HTTP server. This is a non-blocking API.

Function Documentation#

rsi_http_credentials#

int32_t rsi_http_credentials (int8_t *username, int8_t *password)

Create an HTTP server credentials request.Set username and password for HTTP server. This is a blocking API.

Parameters
[in]username

- User-given username

[in]password

- User-given password

  • Call this API after rsi_wireless_init API.

Returns

  • 0 - Success Negative Value - Failure -3 - Command given in wrong state


Definition at line 659 of file network/protocols/http_server/rsi_http_server.c

rsi_http_client_get_async#

int32_t rsi_http_client_get_async (uint8_t flags, uint8_t *ip_address, uint16_t port, uint8_t *resource, uint8_t *host_name, uint8_t *extended_header, uint8_t *user_name, uint8_t *password, #if RSI_HTTP_STATUS_INDICATION_EN void(*http_client_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata, uint16_t status_code) #else void(*http_client_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata) #endif)

Send HTTP get request to remote HTTP server. This is a non-blocking API.

Parameters
[in]flags

- Select version and security

Flags

Macro

Description

BIT(0)

RSI_IPV6

Set this bit to enable IPv6, by default it is configured to IPv4

BIT(1)

RSI_SSL_ENABLE

Set this bit to enable SSL featuree

BIT(2)

RSI_SSL_V_1_0

Set this bit to support SSL TLS Version 1.0 if HTTPS is enabled

BIT(3)

RSI_SSL_V_1_2

Set this bit to support SSL_TLS Version 1.2 if HTTPS is enabled

BIT(4)

RSI_SSL_V_1_1

Set this bit to support SSL_TLS Version 1.1 if HTTPS is enabled

BIT(5)

HTTP_POST_DATA

Set this bit to enable Http_post large data feature

BIT(6)

HTTP_V_1_1

Set this bit to use HTTP version 1.1

[in]ip_address

- Server IP address

[in]port

- Port number of HTTP server

[in]resource

- URL string for requested resource

[in]host_name

- Host name

[in]extended_header

- User-defined extended header, each member header should end by \r\n

[in]user_name

- Username for server authentication

[in]password

- Password for server authentication

[in]endif

- Callback when asynchronous response comes for the request

[out]status

- Status of response from module. This will return failure upon an internal error only.

[out]buffer

- Buffer pointer

[out]length

- Length of data

[out]more_data

- 1 No more data, 0 More data present

[out]status_code

HTTP response code as returned by server in HTTP header. e.g., 200, 201, 404, etc. This field is valid only when status field (first argument) is successful, indicating a response is received from HTTP server. A status_code equal to 0 indicates that there was no HTTP header in the received packet, probably a continuation of the frame body received in the previous chunk. This field is available, if the feature RSI_HTTP_STATUS_INDICATION_EN is enabled in rsi_wlan_config.h

Returns

  • 0 - Success Negative value - Failure -2 - Invalid parameters -3 - Command given in wrong state -4 - Buffer not available to serve the command

Note

  • HTTP server port is configurable on non-standard port also Refer to Error Codes section for the description of the above error codes Error Codes.


Definition at line 74 of file network/protocols/rsi_http_client.c

rsi_http_client_post_async#

int32_t rsi_http_client_post_async (uint8_t flags, uint8_t *ip_address, uint16_t port, uint8_t *resource, uint8_t *host_name, uint8_t *extended_header, uint8_t *user_name, uint8_t *password, uint8_t *post_data, uint32_t post_data_length, #if RSI_HTTP_STATUS_INDICATION_EN void(*http_client_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata, uint16_t status_code) #else void(*http_client_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata) #endif)

Send HTTP post request to remote HTTP server. This is a non-blocking API.

Parameters
[in]flags

- Select version and security

Flags

Macro

Description

BIT(0)

RSI_IPV6

Set this bit to enable IPv6, by default, it is configured to IPv4

BIT(1)

RSI_SSL_ENABLE

Set this bit to enable SSL feature

BIT(2)

RSI_SSL_V_1_0

Set this bit to support SSL TLS Version 1.0 if HTTPS is enabled

BIT(3)

RSI_SSL_V_1_2

Set this bit to support SSL_TLS Version 1.2 if HTTPS is enabled

BIT(4)

RSI_SSL_V_1_1

Set this bit to support SSL_TLS Version 1.1 if HTTPS is enabled

BIT(5)

HTTP_POST_DATA

Set this bit to enable Http_post large data feature

BIT(6)

HTTP_V_1_1

Set this bit to use HTTP version 1.1

[in]ip_address

- Server IP address

[in]port

- Port number of HTTP server

[in]resource

- URL string for requested resource

[in]host_name

- Host name

[in]extended_header

- User-defined extended header, each member header should end by \r\n

[in]user_name

- Username for server authentication

[in]password

- Password for server authentication

[in]post_data

- HTTP data to be posted to server

[in]post_data_length

- Post data length

[in]endif

- Callback when asynchronous response comes for the request

[in]status

- Status of response from module. This will return failure upon an internal error only.

[in]buffer

- Buffer pointer

[in]length

- Length of data

[in]moredata

- 1 No more data, 0 More data present, 2 HTTP post success response

[in]status_code

HTTP response code as returned by server in HTTP header. e.g., 200, 201, 404, etc. This field is valid only when status field (first argument) is successful, indicating a response is received from HTTP server. A status_code equal to 0 indicates that there was no HTTP header in the received packet, probably a continuation of the frame body received in the previous chunk. This field is available, if the feature RSI_HTTP_STATUS_INDICATION_EN is enabled in rsi_wlan_config.h

Returns

  • 0 - Success Negative Value - Failure -2 - Invalid parameters -3 - Command given in wrong state -4 - Buffer not available to serve the command

Note

  • Refer to Error Codes section for the description of the above error codes Error Codes.


Definition at line 160 of file network/protocols/rsi_http_client.c

rsi_http_client_async#

int32_t rsi_http_client_async (uint8_t type, uint8_t flags, uint8_t *ip_address, uint16_t port, uint8_t *resource, uint8_t *host_name, uint8_t *extended_header, uint8_t *user_name, uint8_t *password, uint8_t *post_data, uint32_t post_data_length, #if RSI_HTTP_STATUS_INDICATION_EN void(*callback)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata, uint16_t status_code) #else void(*callback)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata) #endif)

Send HTTP get request/HTTP post request to remote HTTP server based on the type selected. This is a non-blocking API.

Parameters
[in]type

- 0 RSI_HTTP_GET, 1 RSI_HTTP_POST

[in]flags

- Select version and security

Flags

Macro

Description

BIT(0)

RSI_IPV6

Set this bit to enable IPv6, by default, it is configured to IPv4

BIT(1)

RSI_SSL_ENABLE

Set this bit to enable SSL feature

BIT(2)

RSI_SSL_V_1_0

Set this bit to support SSL TLS Version 1.0 if HTTPS is enabled

BIT(3)

RSI_SSL_V_1_2

Set this bit to support SSL_TLS Version 1.2 if HTTPS is enabled

BIT(4)

RSI_SSL_V_1_1

Set this bit to support SSL_TLS Version 1.1 if HTTPS is enabled

BIT(5)

HTTP_POST_DATA

Set this bit to enable Http_post large data feature

BIT(6)

HTTP_V_1_1

Set this bit to use HTTP version 1.1

[in]ip_address

- Server IP address

[in]port

- Port number of HTTP server

[in]resource

- URL string for requested resource Note: HTTP server port is also configurable on a non-standard port

[in]host_name

- Host name

[in]extended_header

- User-defined extended header, each member header should end by \r\n

[in]user_name

- Username for server authentication

[in]password

- Password for server authentication

[in]post_data

- HTTP data to be posted to server

[in]post_data_length

- This is the post data length

[in]endif

- Callback when asyncronous response comes for the request

[out]status

- Status of response from module. This will return failure upon an internal error only.

[out]buffer

- Buffer pointer

[out]length

- Length of data

[out]moredata

- 1 No more data, 0 More data present

[in]status_code

HTTP response code as returned by server in HTTP header. e.g., 200, 201, 404, etc. This field is valid only when status field (first argument) is successful, indicating a response is received from HTTP server. A status_code equal to 0 indicates that there was no HTTP header in the received packet, probably a continuation of the frame body received in the previous chunk. This field is available, if the feature RSI_HTTP_STATUS_INDICATION_EN is enabled in rsi_wlan_config.h

Returns

  • 0 - Success Negative Value - Failure -2 - Invalid parameters -3 - Command given in wrong state -4 - Buffer not available to serve the command

Note

  • Refer to Error Codes section for the description of the above error codes Error Codes.


Definition at line 252 of file network/protocols/rsi_http_client.c

rsi_http_client_abort#

int32_t rsi_http_client_abort (void)

Abort any ongoing HTTP request from the client. This is a blocking API.

Parameters
[in]

Returns

  • 0 - Success Negative Value - Failure -3 - Command given in wrong state -4 - Buffer not available to serve the command

Note

  • Refer to Error Codes section for the description of the above error codes Error Codes.


Definition at line 465 of file network/protocols/rsi_http_client.c

rsi_http_client_put_create#

int32_t rsi_http_client_put_create (void)

Create the HTTP put client. This is a blocking API.

Parameters
[in]

Returns

  • 0 - Success Negative Value - Failure -3 - Command given in wrong state -4 - Buffer not available to serve the command

Note

  • Refer to Error Codes section for the description of the above error codes Error Codes.


Definition at line 526 of file network/protocols/rsi_http_client.c

rsi_http_client_put_delete#

int32_t rsi_http_client_put_delete (void)

Delete the created HTTP put client. This is a non-blocking API.

Parameters
[in]

Returns

  • 0 - Success Negative Value - Failure -3 - Command given in wrong state -4 - Buffer not available to serve the command

Note

  • Refer to Error Codes section for the description of the above error codes Error Codes.


Definition at line 613 of file network/protocols/rsi_http_client.c

rsi_http_client_put_start#

int32_t rsi_http_client_put_start (uint8_t flags, uint8_t *ip_address, uint32_t port_number, uint8_t *resource, uint8_t *host_name, uint8_t *extended_header, uint8_t *user_name, uint8_t *password, uint32_t content_length, void(*callback)(uint16_t status, uint8_t type, const uint8_t *buffer, uint16_t length, const uint8_t end_of_put_pkt))

Start the HTTP client put process. This is a non-blocking API.

Parameters
[in]flags

- Select version and security

Flags

Macro

Description

BIT(0)

RSI_IPV6

Set this bit to enable IPv6, by default, it is configured to IPv4

BIT(1)

RSI_SSL_ENABLE

Set this bit to enable SSL feature

BIT(2)

RSI_SSL_V_1_0

Set this bit to support SSL TLS Version 1.0 if HTTPS is enabled

BIT(3)

RSI_SSL_V_1_2

Set this bit to support SSL_TLS Version 1.2 if HTTPS is enabled

BIT(4)

RSI_SSL_V_1_1

Set this bit to support SSL_TLS Version 1.1 if HTTPS is enabled

BIT(5)

HTTP_POST_DATA

Set this bit to enable Http_post large data feature

BIT(6)

HTTP_V_1_1

Set this bit to use HTTP version 1.1

BIT(7)

HTTP_USER_DEFINED_CONTENT_TYPE

Set this bit to enable user defined http_content type

[in]ip_address

- Server IP address

[in]port_number

- Port number of HTTP server

[in]resource

- URL string for requested resource

[in]host_name

- Host name

[in]extended_header

- User-defined extended header, each member header should end by \r\n

[in]user_name

- Username for server authentication

[in]password

- Password for server authentication

[in]content_length

- Total length of HTTP data

[in]callback

- HTTP data length to be posted to server

[in]callback

- Callback when asyncronous response comes for the request

[in]status

- Status code

[in]type

- HTTP Client PUT command type 2 - Put start response 3 - Put packet response 4 - Put delete response 5 - Data from HTTP server

[in]buffer

- Buffer pointer

[in]length

- Length of data

[in]end_of_put_pkt

- End of file or HTTP resource content 0 - More data is pending from host 1 - End of HTTP file/resource content 8 - More data pending from server 9 - End of HTTP file from server

  • API needs to be called before this API rsi_config_ipaddress rsi_http_client_put_create.

Returns

  • 0 - Success Negative Value - Failure -3 - Command given in wrong state -4 - Buffer not available to serve the command

Note

  • Refer to Error Codes section for the description of the above error codes Error Codes.


Definition at line 720 of file network/protocols/rsi_http_client.c

rsi_http_client_put_pkt#

int32_t rsi_http_client_put_pkt (uint8_t *file_content, uint16_t current_chunk_length)

Send HTTP data to HTTP server for the created URL resource. This is a blocking API.

Parameters
[in]file_content

- HTTP data content

[in]current_chunk_length

- HTTP data current chunk length

  • API needs to be called before this API rsi_config_ipaddress rsi_http_client_put_create rsi_http_client_put_start.

Returns

  • 0 - Success Negative Value - Failure -3 - Command given in wrong state -4 - Buffer not available to serve the command

Note

  • Refer to Error Codes section for the description of the above error codes Error Codes.


Definition at line 873 of file network/protocols/rsi_http_client.c

rsi_http_client_post_data#

int32_t rsi_http_client_post_data (uint8_t *file_content, uint16_t current_chunk_length, #if RSI_HTTP_STATUS_INDICATION_EN void(*rsi_http_post_data_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata, uint16_t status_code) #else void(*rsi_http_post_data_response_handler)(uint16_t status, const uint8_t *buffer, const uint16_t length, const uint32_t moredata) #endif)

Send the HTTP post data packet to remote HTTP server. This is a non-blocking API.

Parameters
[in]file_content

- User given http file content

[in]current_chunk_length

- Length of the current HTTP data

[in]endif

- Callback when asynchronous response comes for the request.

[in]status

- Status of response from module. This will return failure upon an internal error only.

[in]buffer

- Buffer pointer

[in]length

- Length of data

[in]more_data

- 4- More data is pending from host 5-End of HTTP data from host(Host sent total data content length) 8–More data is pending from module to host. Further interrupts may be raised by the module till all the data is transferred to the Host. 9– End of HTTP data from module to host.

[in]status_code

- HTTP response code as returned by server in HTTP header. e.g., 200, 201, 404, etc. This field is valid only when status field (first argument) is successful, indicating a response is received from HTTP server. A status_code equal to 0 indicates that there was no HTTP header in the received packet, probably a continuation of the frame body received in the previous chunk. This field is available, if the feature RSI_HTTP_STATUS_INDICATION_EN is enabled in rsi_wlan_config.h

Returns

  • 0 - Success Negative Value - Failure -2 - Invalid parameters -3 - Command given in wrong state -4 - Buffer not available to serve the command

Note

  • Refer to Error Codes section for the description of the above error codes Error Codes.


Definition at line 981 of file network/protocols/rsi_http_client.c

rsi_http_otaf_async#

int32_t rsi_http_otaf_async (uint8_t type, uint8_t flags, uint8_t *ip_address, uint16_t port, uint8_t *resource, uint8_t *host_name, uint8_t *extended_header, uint8_t *user_name, uint8_t *password, uint8_t *post_data, uint32_t post_data_length, void(*callback)(uint16_t status, const uint8_t *buffer))

Post the HTTP data for the requested URL to HTTP server. This is a non-blocking API.

Parameters
[in]type

- 0 - HTTPGET 1 - HTTPPOST

[in]flags

- Select version and security:

Flags

Macro

Description

BIT(0)

RSI_IPV6

Set this bit to enable IPv6 , by default it is configured to IPv4

BIT(1)

RSI_SSL_ENABLE

Set this bit to enable SSL feature

BIT(2)

RSI_SSL_V_1_0

Set this bit to support SSL TLS Version 1.0 if HTTPS is enabled

BIT(3)

RSI_SSL_V_1_2

Set this bit to support SSL_TLS Version 1.2 if HTTPS is enabled

BIT(4)

RSI_SSL_V_1_1

Set this bit to support SSL_TLS Version 1.1 if HTTPS is enabled

BIT(6)

HTTP_V_1_1

Set this bit to use HTTP version 1.1

[in]ip_address

- Server IP address

[in]port

- Port number, default : 80 - HTTP, 443 - HTTPS

[in]resource

- URL string for requested resource

[in]host_name

- Post name

[in]extended_header

- Extender header if present, after each header member append \r\n

[in]user_name

- Username for server Authentication

[in]password

- Password for server Authentication

[in]post_data

- HTTP data to be posted to server

[in]post_data_length

- HTTP data length to be posted to server

[in]callback

- callback is called when asynchronous response is received from module for HTTP firmware update request

[out]buffer

- NULL

[out]status

- This is the status response from module. This returns failure upon an internal error only.

Returns

  • 0 - Success Negative Value - Failure -2 - Invalid parameters -3 - Command given in wrong state -4 - Buffer not available to serve command

Note

  • Refer to Error Codes section for the description of the above error codes Error Codes.


Definition at line 115 of file network/protocols/rsi_http_ota_fw_up.c