java - 如何初始化 char 数组以容纳 HTTP POST 内容长度

标签 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 是请求内容数据的字节数(而不是字符数),因此,基于以下内容构造此 char 数组的最有效方法是什么?请求的内容长度?

最佳答案

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

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

关于java - 如何初始化 char 数组以容纳 HTTP POST 内容长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16628124/

相关文章:

java - 为什么可以通过创建对象在main方法中调用非静态方法? java

java - JDB 在每次异常时停止——如何防止这种情况

java - Jcombobox - 订阅 selectedItemChanged 事件

java - Selenium 没有使用 Chromedriver 通过 xpath 找到元素

javascript - 如何将页面图片拉直,使其看起来像扫描的一样?

performance - Hibernate 直接在 HTML 页面中记录每个 HTTP 请求

javascript - 通过另一个属性的值获取元素的属性值

javascript - 有没有办法全局而不是单独处理未定义的值?

c# - 如何创建一个简单的 c# http 监视器/拦截器?

java - 如何在解析为 dto 之前获取 http Jersey 响应状态?