[링크 : https://linux.die.net/man/3/system]
[링크 : https://linux.die.net/man/2/wait]
+
system으로는 실행 내용을 돌릴수 없으므로 ppipe 이용
[링크 : http://wanochoi.com/?p=178]
+
POST 인자로 body에 id와 password를 넘겨주는 curl을 실행하는 예제
#include <stdio.h> #include <stdlib.h> void main() { int ret = 0; int status = 0; unsigned char cmd[255]; unsigned char id[32] = "admin"; unsigned char pw[32] = "admin"; unsigned char url[] = "http://localhost:3000/api/test"; unsigned char header[] = "-H 'Content-Type: application/json'"; unsigned char data = "-d '{ \"id\":\"%s\",\"password\":\"%s\"}'"; sprintf(cmd, "curl -X POST %s %s -d '{ \"id\":\"%s\",\"password\":\"%s\"}'", url, header, id, pw); printf("%s\n",cmd); // ret = system(cmd); // wait(&status); FILE *output = popen(cmd, "r"); char buf[255]; int pos = 0; while( !feof(output) && !ferror(output) ) { int bytesRead = fread( buf + pos , 1, 128, output ); pos += bytesRead; } printf("buf : [%s]\n",buf); // printf("ret : [%d]\n",ret); // printf("sta : [%d]\n",WEXITSTATUS(status)); } |
+
이상한 메시지는 curl 을 콘솔에서 실행할때에도 안나오는데 아무튼. pipe로 실행하면 넘겨져 온다.
보기 싫으면 --silent 옵션주면 끝
# ./a.out curl -X POST http://localhost:3000/api/test -H 'Content-Type: application/json' -d '{ "id":"1234","password":"1234"}' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 397 100 363 100 34 18426 1725 --:--:-- --:--:-- --:--:-- 19105 |
[링크 : https://makandracards.com/makandra/1615-disable-output-when-using-curl[
'Linux API' 카테고리의 다른 글
libescp (0) | 2019.01.03 |
---|---|
cups api (0) | 2018.12.20 |
ncurse (0) | 2015.04.27 |
lirc - linux IR Remote control (0) | 2015.03.31 |
vaapi vdpau uvd (6) | 2015.03.26 |