2013-05-18 1 views
0

저는 학습을 목적으로 HTTP 서버를 작성하고 있습니다. HTTP POST 요청을 받으면 클라이언트가 보낸 매개 변수를 인쇄하려고합니다. 문제는 "name = Marcelo"를 보내고 불완전한 결과가 나타납니다. ,HTTP POST를 수용하기 위해 char 배열을 초기화하는 방법 Content-Length

//Initialize an array of characters       
var content = new CharArray(contentLength); 
print('Content length: ' + content.length); 

bufReader.read(content); 

for(var c in content) { 
    print('char ' + c + ': ' + content[c]); 
} 

내가 Content-Length 요청 콘텐츠 데이터의 바이트 수는 것을 이해 (안 문자 수) 너무 :

Content length: 12 
char 0: 
char 1: 

char 2: n 
char 3: a 
char 4: m 
char 5: e 
char 6: = 
char 7: M 
char 8: a 
char 9: r 
char 10: c 
char 11: e 

여기에 코드 (예 : 자바 JS, Nashorn)입니다 요청의 Content-Length를 기반으로이 char 배열을 구성하는 가장 효율적인 방법은 무엇입니까?

답변

2

분명히 POST 본문을 읽기 전에 HTTP 헤더를 읽지 않습니다. 따라서 내용 배열의 처음 두 문자는 각각 \ r 및 \ n이고 본문의 마지막 두 문자는 읽히지 않습니다.

마지막 HTTP 헤더 행 다음에 개행을 읽음으로써이를 수정하십시오.

+0

감사합니다. 다음 코드는 내 문제를 해결했지만 답은 내가 찾고있는 설명 (즉, \ r \ n 문자)을 주었다. 'var content = new CharArray ((parseInt (contentLength) +2)); – theMarceloR

+0

아아, 답을 수락하려면 36 초를 기다려야합니다. D – theMarceloR

관련 문제