int zbx_http_request_prepare(zbx_http_context_t *context, unsigned char request_method, const char *url, const char *query_fields, char *headers,
#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);
void zbx_http_url_encode(const char *source, char **result);
int zbx_http_url_decode(const char *source, char **result);
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;