2017-05-22 5 views
0

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 
는 는 는

데이터 시트에 따라 < < < 뒤에 데이터가 있어야를

+1

* HTTP/1.1은 엔티티 본문을 제외한 모든 프로토콜 요소에 대한 줄 끝 표시로 시퀀스 CR LF를 정의합니다. * - CR 만 사용하고있는 것처럼 보입니까? – tofro

답변

0

이 좋아, 그것은집니다 아무것도 C 코드로 잘못 됐어. AVR. HTTP GET 요청에 대한 테스트 서버를 발견하고 해당 사이트에서 모듈을 성공적으로 테스트했습니다. 따라서 HTTP GET 요청에 응답 할 때 PHP 파일을 사용하는 것이 기본 문제입니다.

관련 문제