GET방식으로 전송 할려면?
글쓴이: dongssim / 작성시간: 금, 2013/04/19 - 5:47오후
임베디드 EDDY(시스템베이스 제품)사용하고 있습니다.
C로 프로그램을 하고, CGI로 되어 있다고 합니다.
어플리케이션에서 시리얼 통신을 받아 알람이 발생하면
웹으로 SMS문자를 전송해야합니다.
그래서 찾아 보니까 '문자나라'에서 GET방식으로 아래와 같이 보내면 된다고 합니다.
http://www.winc7788.co.kr/MSG/send/web_admin_send.htm?userid=문자나라아이디 ...
내가 프로그램한 어플에서 위의것을 어떻게 처리해 줘야 하나요?
Forums:
소켓쓰면됩니다.
그냥 TCP 소켓하나 오픈하시고 문자열 통신하시면 됩니다. 당연히 프로토콜은 HTTP이구요
GET /msg/send/web_admin_send.html?userid=xxxx HTTP/1.1 \r\n
Content-length: xxx \r\n\r\n
Connection: Close
소켓을 열어 프로그램 했는데 맞는지???
char *argv1;
char *argv2;
char *WORK;
char buff5[20];
argv1="211.233.20.184";
argv2="80";
fd = SB_ConnectTcp (argv1, argv2, 1, 8, 8);
WORK="GET /MSG/send/web_admin_send.htm?userid=test테스트 HTTP/1.1\r\n";
length=strlen(WORK);
write (fd, WORK, length);
sprintf(buff5,"Content-length: %03d\r\n",length);
length=strlen(buff5);
write (fd, buff5, length);
WORK="Connection: Close \r\n\r\n";
length=strlen(WORK);
write (fd, WORK, length);
shutdown(fd, SHUT_RDWR);
close (fd);
Content-Length 헤더는 POST 에만
Content-Length 헤더는 POST 에만 사용합니다.
그리고 한글(multibyte character)는 urlencoding을 해 주시는 것이 좋습니다.
그리고 1.1 spec에서는 Host header는 필수 입니다.
제일간단한 방법은
exec()같은걸로 telnet 주소
이렇게하시면 돼요.
1줄!
---------------------------------------------------------------------------------
C(++)과 php 펄등을 공부하고있습니다.
반갑습니다! 리눅스 :-)
댓글 달기