欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 獲取request json

林子帆2年前9瀏覽0評論

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'。