From b617b34f20e52e83ec9599e1fdcdda952e7d47fa Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 31 Dec 2024 15:51:02 +0100 Subject: [PATCH] add content type headers --- src/kds_s2000w_client.c | 52 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/src/kds_s2000w_client.c b/src/kds_s2000w_client.c index 8720359..1517a7d 100644 --- a/src/kds_s2000w_client.c +++ b/src/kds_s2000w_client.c @@ -8,7 +8,12 @@ #include "kds_s2000w_debug.h" #define MAX_STR_BUFFER_LENGTH 80 + #define X_STATUS_HEADER "x-status" +#define CONTENT_TYPE_HEADER "Content-Type: application/json" +#define ACCEPT_JSON_HEADER "Accept: application/json" +#define ACCEPT_IMAGE_HEADER "Accept: image/jpeg,image/tiff" + #define SESSION_PATH "/api/session" #define STATUS_PATH "/api/session/status" #define STARTSCAN_PATH "/api/session/startscan" @@ -124,6 +129,11 @@ int kds_s2000w_client_open_session(response* response) curl_url_get(url_handler, CURLUPART_URL, &url, 0); curl_easy_setopt(curl, CURLOPT_URL, url); + struct curl_slist* headers = NULL; + headers = curl_slist_append(headers, CONTENT_TYPE_HEADER); + headers = curl_slist_append(headers, ACCEPT_JSON_HEADER); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + char* buffer = malloc(sizeof(char)); size_t* sizeloc = malloc(sizeof(size_t)); FILE* stream = open_memstream(&buffer, sizeloc); @@ -149,6 +159,8 @@ int kds_s2000w_client_open_session(response* response) curl_url_cleanup(url_handler); url_handler = NULL; + curl_slist_free_all(headers); + headers = NULL; free(body); body = NULL; curl_free(url); @@ -179,6 +191,8 @@ void kds_s2000w_client_close_session(int64_t sessionid) memset(header_str, 0, MAX_STR_BUFFER_LENGTH); sprintf(header_str, "SessionId: %li", sessionid); headers = curl_slist_append(headers, header_str); + headers = curl_slist_append(headers, CONTENT_TYPE_HEADER); + headers = curl_slist_append(headers, ACCEPT_JSON_HEADER); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE"); @@ -220,6 +234,8 @@ int kds_s2000w_client_status_session(int64_t sessionid, response* response) struct curl_slist* headers = NULL; sprintf(header_str, "SessionId: %li", sessionid); headers = curl_slist_append(headers, header_str); + headers = curl_slist_append(headers, CONTENT_TYPE_HEADER); + headers = curl_slist_append(headers, ACCEPT_JSON_HEADER); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); char* buffer = malloc(sizeof(char)); @@ -243,6 +259,8 @@ int kds_s2000w_client_status_session(int64_t sessionid, response* response) curl_url_cleanup(url_handler); url_handler = NULL; + curl_slist_free_all(headers); + headers = NULL; curl_free(url); url = NULL; free(buffer); @@ -273,6 +291,8 @@ int kds_s2000w_client_start_scan(int64_t sessionid, response* response) memset(header_str, 0, MAX_STR_BUFFER_LENGTH); sprintf(header_str, "SessionId: %li", sessionid); headers = curl_slist_append(headers, header_str); + headers = curl_slist_append(headers, CONTENT_TYPE_HEADER); + headers = curl_slist_append(headers, ACCEPT_JSON_HEADER); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); char* buffer = malloc(sizeof(char)); @@ -297,6 +317,8 @@ int kds_s2000w_client_start_scan(int64_t sessionid, response* response) curl_url_cleanup(url_handler); url_handler = NULL; + curl_slist_free_all(headers); + headers = NULL; curl_free(url); url = NULL; free(buffer); @@ -327,6 +349,8 @@ int kds_s2000w_client_stop_scan(int64_t sessionid, response* response) struct curl_slist* headers = NULL; sprintf(header_str, "SessionId: %li", sessionid); headers = curl_slist_append(headers, header_str); + headers = curl_slist_append(headers, CONTENT_TYPE_HEADER); + headers = curl_slist_append(headers, ACCEPT_JSON_HEADER); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); char* buffer = malloc(sizeof(char)); @@ -351,6 +375,8 @@ int kds_s2000w_client_stop_scan(int64_t sessionid, response* response) curl_url_cleanup(url_handler); url_handler = NULL; + curl_slist_free_all(headers); + headers = NULL; curl_free(url); url = NULL; free(buffer); @@ -384,6 +410,8 @@ int kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* res memset(header_str, 0, MAX_STR_BUFFER_LENGTH); sprintf(header_str, "SessionId: %li", sessionid); headers = curl_slist_append(headers, header_str); + headers = curl_slist_append(headers, CONTENT_TYPE_HEADER); + headers = curl_slist_append(headers, ACCEPT_IMAGE_HEADER); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); char* buffer = malloc(sizeof(char)); @@ -407,6 +435,8 @@ int kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* res curl_url_cleanup(url_handler); url_handler = NULL; + curl_slist_free_all(headers); + headers = NULL; curl_free(url); url = NULL; free(buffer); @@ -425,8 +455,6 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response* { debug_printf(ALL, "kds_s2000w_client_delete_image"); - struct curl_slist* headers = NULL; - curl_easy_reset(curl); char* url = NULL; @@ -439,10 +467,13 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response* curl_url_get(url_handler, CURLUPART_URL, &url, 0); curl_easy_setopt(curl, CURLOPT_URL, url); + struct curl_slist* headers = NULL; char* header_str = malloc(sizeof(char) * MAX_STR_BUFFER_LENGTH); memset(header_str, 0, MAX_STR_BUFFER_LENGTH); sprintf(header_str, "SessionId: %li", sessionid); headers = curl_slist_append(headers, header_str); + headers = curl_slist_append(headers, CONTENT_TYPE_HEADER); + headers = curl_slist_append(headers, ACCEPT_JSON_HEADER); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); char* buffer = malloc(sizeof(char)); @@ -466,6 +497,8 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response* curl_url_cleanup(url_handler); url_handler = NULL; + curl_slist_free_all(headers); + headers = NULL; curl_free(url); url = NULL; free(buffer); @@ -491,6 +524,11 @@ int kds_s2000w_client_get_capabilities(response* response) curl_url_get(url_handler, CURLUPART_URL, &url, 0); curl_easy_setopt(curl, CURLOPT_URL, url); + struct curl_slist* headers = NULL; + headers = curl_slist_append(headers, CONTENT_TYPE_HEADER); + headers = curl_slist_append(headers, ACCEPT_JSON_HEADER); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + char* buffer = malloc(sizeof(char)); size_t* sizeloc = malloc(sizeof(size_t)); FILE* stream = open_memstream(&buffer, sizeloc); @@ -512,6 +550,8 @@ int kds_s2000w_client_get_capabilities(response* response) curl_url_cleanup(url_handler); url_handler = NULL; + curl_slist_free_all(headers); + headers = NULL; curl_free(url); url = NULL; free(buffer); @@ -540,6 +580,8 @@ int kds_s2000w_client_get_option(int64_t sessionid, response* response) struct curl_slist* headers = NULL; sprintf(header_str, "SessionId: %li", sessionid); headers = curl_slist_append(headers, header_str); + headers = curl_slist_append(headers, CONTENT_TYPE_HEADER); + headers = curl_slist_append(headers, ACCEPT_JSON_HEADER); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); char* buffer = malloc(sizeof(char)); @@ -563,6 +605,8 @@ int kds_s2000w_client_get_option(int64_t sessionid, response* response) curl_url_cleanup(url_handler); url_handler = NULL; + curl_slist_free_all(headers); + headers = NULL; curl_free(url); url = NULL; free(buffer); @@ -593,6 +637,8 @@ int kds_s2000w_client_set_option(int64_t sessionid, response* response) struct curl_slist* headers = NULL; sprintf(header_str, "SessionId: %li", sessionid); headers = curl_slist_append(headers, header_str); + headers = curl_slist_append(headers, CONTENT_TYPE_HEADER); + headers = curl_slist_append(headers, ACCEPT_JSON_HEADER); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, response->data); @@ -609,6 +655,8 @@ int kds_s2000w_client_set_option(int64_t sessionid, response* response) curl_url_cleanup(url_handler); url_handler = NULL; + curl_slist_free_all(headers); + headers = NULL; curl_free(url); url = NULL; free(header_str); -- 2.39.5