C語言是一種非常經(jīng)典的編程語言。在Web開發(fā)中,我們可能需要使用C語言獲取POST傳遞的JSON數(shù)據(jù)。下面是C語言獲取POST傳遞的JSON數(shù)據(jù)的方法。
void handle_request(char *json_data) { // 處理JSON數(shù)據(jù) } int main() { char *content; char *method; size_t length; int ret; method = getenv("REQUEST_METHOD"); if (!method || strcmp(method, "POST") != 0) { printf("Content-Type: text/html\r\n\r\n"); printf("This script should be called with a POST method.\n"); return 0; } length = strtoul(getenv("CONTENT_LENGTH"), NULL, 10); content = (char*)malloc(length+1); if (content == NULL) { printf("Content-Type: text/html\r\n\r\n"); printf("Could not allocate memory for request content.\n"); return 0; } ret = fread(content, 1, length, stdin); if (ret != length) { printf("Content-Type: text/html\r\n\r\n"); printf("Could not read request content.\n"); return 0; } content[length] = '\0'; handle_request(content); return 0; }
此段代碼通過C語言獲取POST傳遞的JSON數(shù)據(jù)。關(guān)鍵在于讀取環(huán)境變量“REQUEST_METHOD”和“CONTENT_LENGTH”,并使用fread方法讀取JSON數(shù)據(jù)。一旦JSON數(shù)據(jù)被讀取,我們可以對其進(jìn)行處理。