UART를 통해 AVR과 통신하는 Telit HE910 셀룰러 모뎀이 있습니다. 서버에 HTTP GET에 대한 AT 명령을 발행합니다. 모뎀 데이터 시트에 따르면 3 개의 당근 (< < <)을 얻은 다음 서버에서 데이터 스트림을 얻어야합니다. 나는 3 마리의 당근을 얻는다. 그러나 어떤 자료가 아니라도. HTTP 응답 코드는 콘텐츠 길이가 0 인 200 (ok)입니다. 서버 측에서는 GET 요청이 서버를 치는 지 확인할 수 있도록 요청을 로깅합니다. 그래서 서버와 모뎀 모두에서 OK이지만 데이터는 얻지 못합니다. 나는 다른 웹 페이지에서 서버에 GET 요청을 수행 할 수 있으며 제대로 작동합니다. 누구든지이 문제를 일으킬 수있는 아이디어가 있습니까?HTTP GET 요청을 사용하여 항상 콘텐츠 길이가 0이되는 이유
PHP 페이지는 요청시 문자열을 출력합니다. 예를
<php?
header('Content-type: text/plain');
echo 'Test';
?>
AVR/모뎀 코드 터미널에서
sprintf(buf, "#HTTPCFG=0,\"%s\",80,0,,,0,120,1", host);
AT_ASSERT(AT_OK == AT_SendCommand(buf, response));
sprintf(buf, "#HTTPQRY=%d,%d,%s%c",
get_profile(),
0,
page,
CR);
AT_ASSERT(AT_OK == AT_SendCommand(buf, response));
sprintf(buf, "AT#HTTPRCV=0%c", CR);
UART0_TxString(buf);
c = UART0_RxChar();
response[0]=c;
i=0;
while((c=UART0_RxChar()) != CR)
{
response[i++]=c;
}
UART1_Flush();
UART1_Printf("received: %s\n", response);
응답을
는 는 는received:
<<<
HTTP POST Complete
는 는 는
데이터 시트에 따라 < < < 뒤에 데이터가 있어야를
* HTTP/1.1은 엔티티 본문을 제외한 모든 프로토콜 요소에 대한 줄 끝 표시로 시퀀스 CR LF를 정의합니다. * - CR 만 사용하고있는 것처럼 보입니까? – tofro