如何初始化char数组以适应HTTP POST Content-Length

时间:2013-05-18 19:24:01

标签: java javascript http nashorn

我正在编写HTTP服务器(用于学习目的)。一旦收到HTTP POST请求,我想打印客户端发送的参数,问题是我发送的是“name = Marcelo”,结果不完整。

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

这是代码(带Java的JS,即Nashorn):

//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构造这个char数组的最有效方法是什么?

1 个答案:

答案 0 :(得分:2)

显然,在阅读POST正文之前,你并没有完全阅读HTTP标题。因此,内容数组的前两个字符分别是\ r和\ n,并且不会读取正文的最后两个字符。

通过在最后一个HTTP标题行后读取 2 换行符来解决此问题。