mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-21 01:36:31 +00:00
Berry add webclient
collect_headers()
and set_headers
(#18166)
This commit is contained in:
parent
4aa9aebae3
commit
34bf941cd2
@ -10,7 +10,8 @@ All notable changes to this project will be documented in this file.
|
|||||||
- Extended Tariff command for forced tariff (#18080)
|
- Extended Tariff command for forced tariff (#18080)
|
||||||
- Berry support for Tensorflow Lite (TFL) by Christiaan Baars (#18119)
|
- Berry support for Tensorflow Lite (TFL) by Christiaan Baars (#18119)
|
||||||
- Zigbee send Tuya 'magic spell' to unlock devices when pairing (#18144)
|
- Zigbee send Tuya 'magic spell' to unlock devices when pairing (#18144)
|
||||||
- Berry add `wc.set_follow_redirects(bool)`
|
- Berry add `webclient` `set_follow_redirects(bool)`
|
||||||
|
- Berry add `webclient` `collect_headers()` and `set_headers`
|
||||||
|
|
||||||
### Breaking Changed
|
### Breaking Changed
|
||||||
- Shelly Pro 4PM using standard MCP23xxx driver and needs one time Auto-Configuration
|
- Shelly Pro 4PM using standard MCP23xxx driver and needs one time Auto-Configuration
|
||||||
|
@ -16,6 +16,8 @@ extern int wc_set_timeouts(bvm *vm);
|
|||||||
extern int wc_set_useragent(bvm *vm);
|
extern int wc_set_useragent(bvm *vm);
|
||||||
extern int wc_set_follow_redirects(bvm *vm);
|
extern int wc_set_follow_redirects(bvm *vm);
|
||||||
extern int wc_set_auth(bvm *vm);
|
extern int wc_set_auth(bvm *vm);
|
||||||
|
extern int wc_collect_headers(bvm *vm);
|
||||||
|
extern int wc_get_header(bvm *vm);
|
||||||
extern int wc_connected(bvm *vm);
|
extern int wc_connected(bvm *vm);
|
||||||
extern int wc_close(bvm *vm);
|
extern int wc_close(bvm *vm);
|
||||||
extern int wc_addheader(bvm *vm);
|
extern int wc_addheader(bvm *vm);
|
||||||
@ -50,6 +52,11 @@ class be_class_webclient (scope: global, name: webclient) {
|
|||||||
set_useragent, func(wc_set_useragent)
|
set_useragent, func(wc_set_useragent)
|
||||||
set_follow_redirects, func(wc_set_follow_redirects)
|
set_follow_redirects, func(wc_set_follow_redirects)
|
||||||
set_auth, func(wc_set_auth)
|
set_auth, func(wc_set_auth)
|
||||||
|
|
||||||
|
// collect response headers
|
||||||
|
collect_headers, func(wc_collect_headers)
|
||||||
|
get_header, func(wc_get_header)
|
||||||
|
|
||||||
close, func(wc_close)
|
close, func(wc_close)
|
||||||
add_header, func(wc_addheader)
|
add_header, func(wc_addheader)
|
||||||
GET, func(wc_GET)
|
GET, func(wc_GET)
|
||||||
|
@ -273,6 +273,41 @@ extern "C" {
|
|||||||
be_raise(vm, kTypeError, nullptr);
|
be_raise(vm, kTypeError, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// wc.collect_headers( [header:string]+ ) -> self
|
||||||
|
int32_t wc_collect_headers(struct bvm *vm);
|
||||||
|
int32_t wc_collect_headers(struct bvm *vm) {
|
||||||
|
int32_t argc = be_top(vm);
|
||||||
|
if (argc >= 2) {
|
||||||
|
size_t header_len = argc-1;
|
||||||
|
const char** header_array = (const char**) be_os_malloc((header_len) * sizeof(const char*));
|
||||||
|
if (!header_array) { be_throw(vm, BE_MALLOC_FAIL); }
|
||||||
|
|
||||||
|
for (int32_t i = 0; i < header_len; i++) {
|
||||||
|
header_array[i] = be_tostring(vm, i + 2);
|
||||||
|
}
|
||||||
|
HTTPClientLight * cl = wc_getclient(vm);
|
||||||
|
cl->collectHeaders(header_array, header_len);
|
||||||
|
|
||||||
|
be_os_free(header_array);
|
||||||
|
}
|
||||||
|
be_pushvalue(vm, 1);
|
||||||
|
be_return(vm); /* return self */
|
||||||
|
}
|
||||||
|
|
||||||
|
// wc.get_header(header_name:string) -> string
|
||||||
|
int32_t wc_get_header(struct bvm *vm);
|
||||||
|
int32_t wc_get_header(struct bvm *vm) {
|
||||||
|
int32_t argc = be_top(vm);
|
||||||
|
if (argc >= 2 && be_isstring(vm, 2)) {
|
||||||
|
HTTPClientLight * cl = wc_getclient(vm);
|
||||||
|
const char * header_name = be_tostring(vm, 2);
|
||||||
|
String ret = cl->header(header_name);
|
||||||
|
be_pushstring(vm, ret.c_str());
|
||||||
|
be_return(vm); /* return self */
|
||||||
|
}
|
||||||
|
be_raise(vm, kTypeError, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
// wc.wc_set_auth(auth:string | (user:string, password:string)) -> self
|
// wc.wc_set_auth(auth:string | (user:string, password:string)) -> self
|
||||||
int32_t wc_set_auth(struct bvm *vm);
|
int32_t wc_set_auth(struct bvm *vm);
|
||||||
int32_t wc_set_auth(struct bvm *vm) {
|
int32_t wc_set_auth(struct bvm *vm) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user