色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 返回json直接下載

錢淋西1年前9瀏覽0評論

在我們的開發工作中,有時候需要將數據以json格式返回給前端,并且還需要支持直接下載,這時候我們可以使用c語言來實現。

首先,我們需要先將數據轉換成json格式的字符串,這可以借助cJSON庫來實現。下面是一個簡單的例子:

cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "Tom");
cJSON_AddNumberToObject(root, "age", 18);
char *json_string = cJSON_Print(root);

接著,我們需要將json字符串作為響應體返回給前端。在http協議中,我們可以添加一個Content-Disposition頭部來實現直接下載。下面是一個示例:

char *content_type = "application/json";
char *content_disposition = "attachment; filename=data.json";
char *response_body = json_string;
int response_body_len = strlen(json_string);
char *response_headers = (char *)malloc(1024);
sprintf(response_headers, "HTTP/1.1 200 OK\r\nContent-Type: %s\r\nContent-Disposition: %s\r\nContent-Length: %d\r\n\r\n", content_type, content_disposition, response_body_len);
int response_headers_len = strlen(response_headers);
char *response = (char *)malloc(response_headers_len + response_body_len);
memcpy(response, response_headers, response_headers_len);
memcpy(response + response_headers_len, response_body, response_body_len);
write(connfd, response, response_headers_len + response_body_len);

在以上代碼中,我們首先定義了Content-Type和Content-Disposition頭部,并將json字符串作為響應體,然后計算出整個響應的長度,并將響應頭和響應體拼接起來,最后通過write函數將響應發送給前端。

通過以上步驟,我們就可以實現將json數據以直接下載的形式返回給前端了。