int zbx_http_prepare_auth(CURL *easyhandle, unsigned char authtype, const char *username, const char *password,
#define ZBX_HTTPFIELD_HEADER 0
#define ZBX_HTTPFIELD_VARIABLE 1
#define ZBX_HTTPFIELD_POST_FIELD 2
#define ZBX_HTTPFIELD_QUERY_FIELD 3
#define ZBX_POSTTYPE_RAW 0
#define ZBX_POSTTYPE_FORM 1
#define ZBX_POSTTYPE_JSON 2
#define ZBX_POSTTYPE_XML 3
#define ZBX_POSTTYPE_NDJSON 4
#define ZBX_RETRIEVE_MODE_CONTENT 0
#define ZBX_RETRIEVE_MODE_HEADERS 1
#define ZBX_RETRIEVE_MODE_BOTH 2
int zbx_http_punycode_encode_url(char **url);
char *zbx_determine_charset(const char *content_type, char *body, size_t size);
struct curl_slist *headers_slist;
zbx_http_response_t body;
zbx_http_response_t header;
char errbuf[CURL_ERROR_SIZE];
unsigned char retrieve_mode;
unsigned char output_format;
size_t zbx_curl_write_cb(void *ptr, size_t size, size_t nmemb, void *userdata);
size_t zbx_curl_ignore_cb(void *ptr, size_t size, size_t nmemb, void *userdata);