C語言是一門廣泛應(yīng)用于計算機(jī)科學(xué)和系統(tǒng)編程的高級編程語言。在Web開發(fā)中,C語言可以用來獲取request json。下面我們來看看怎樣使用C語言獲取request json。
static char *readRequestBody(ngx_http_request_t *r) { size_t len; ssize_t size; char *buf; ngx_chain_t *cl; ngx_buf_t *bufp; len = 0; cl = r->request_body->bufs; if (cl == NULL) return NULL; /* No data yet */ if (cl->buf->pos == cl->buf->last) { return NULL; } for ( ;; ) { bufp = cl->buf; size = bufp->last - bufp->pos; if (size >(ssize_t)(r->request_body->buf->last - bufp->pos)) { size = r->request_body->buf->last - bufp->pos; } len += size; cl = cl->next; if (cl == NULL) break; if (cl->buf->pos == cl->buf->last) { break; } } if (len == 0) return NULL; buf = ngx_palloc(r->pool, len); if (buf == NULL) { return NULL; } len = 0; cl = r->request_body->bufs; for ( ;; ) { bufp = cl->buf; size = bufp->last - bufp->pos; if (size >(ssize_t)(r->request_body->buf->last - bufp->pos)) { size = r->request_body->buf->last - bufp->pos; } memcpy(&buf[len], bufp->pos, size); len += size; cl = cl->next; if (cl == NULL) break; } buf[len] = '\0'; return buf; }
這段代碼中,我們利用ngx_http_request_t結(jié)構(gòu)體獲取request信息。其中,我們利用request_body來獲取request json的內(nèi)容。首先,我們定義了一個字符指針buf,用來存儲request json。由于可能會有大量數(shù)據(jù)傳輸,使用鏈表傳輸數(shù)據(jù)更為穩(wěn)定,于是我們定義了大小為ngx_chain_t的鏈表cl,遍歷鏈表得到request json。最后,使用memcpy函數(shù)將數(shù)據(jù)拷貝到buf中,并在結(jié)尾添加'\0'。
上一篇vue html代碼