当帖子大于4KB时,G-WAN MAX_ENTITY_SIZE问题

时间:2013-02-07 17:36:33

标签: entity http-post limit g-wan

有没有人遇到过MAX_ENTITY_SIZE这个问题?我现在已经和它斗争了很长一段时间。我希望我只是做一些愚蠢的事情,或者有人为此找到了解决办法。

我在Ubuntu 64bit最新版本上使用G-WAN 4.2.7。

这是一个测试用例。只需在textarea上粘贴任何文本,然后单击“提交”。如果它小于4KB(或小于3.2KB),它将正常工作。如果它大于4KB,它将返回404未找到,但它应该工作,因为我将MAX_ENTITY_SIZE设置为200KB。

#include "gwan.h" // G-WAN exported functions
#include <string.h>

int main(int argc, char *argv[])
{
    xbuf_t *reply = get_reply(argv);    
    int *entity = (int*)get_env(argv, MAX_ENTITY_SIZE);

    char *text = NULL;
    get_arg("stext=", &text, argc, argv);
    if(text) // Check if text exist.
        xbuf_xcat(reply, "Text: %s<br/><br/>%d", text, strlen(text));

    static char form[] = 
        "<form method=\"post\">"
            "<textarea name=\"stext\"></textarea><br/>"
            "<input name=\"button\" type=\"submit\" value=\"Submit\" />"
        "</form><br/>Entity Size: %d";
    xbuf_xcat(reply, form, *entity);

    return 200;
}

别忘了增加MAX_ENTITY_SIZE限制:

int init(int argc, char *argv[])
{
   int *entity = (int*)get_env(argv, MAX_ENTITY_SIZE);
   *entity = 200 * 1024;
   return 0;
}

更新:

在Ubuntu 10.10上测试过同样的问题。

3 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

从我自己的测试中,您可以发送一个最多3663字节的文件,但任何POST 3664字节及更大的字符都将返回404,无论MAX_ENTITY_SIZE值如何。不知道为什么使用3663的任意限制......

应该可以编写一个自定义处理程序来解决这个问题,但这充其量是烦恼。希望我们能尽快得到解决。

答案 1 :(得分:0)

G-WAN v4.2.19附带增强型entity.centity_size.c示例,这些示例已经过 1.7 MiB文件上传测试。试试吧。

答案 2 :(得分:-1)

它生成HDL_HTTP_ERRORS。所以servlet无法执行。