httpURLConnection:一个POST参数可以有多长?

4

我目前正在使用类似这样的东西:

 HttpURLConnection con = (HttpURLConnection) u.openConnection ();
     con.setDoInput(true);
     con.setRequestMethod("POST");
    
     con.setDoInput (true);
     con.setDoOutput (true);
     con.setRequestProperty ("Content-Type", "application/x-www-form-urlencoded");
     
        out = new DataOutputStream(con.getOutputStream());
     String content = "username=" + URLEncoder.encode ("bob")
      + "&password=" + URLEncoder.encode ("smith");
     System.out.println("\n" + "sending form to HTTP server ...");
     out.writeBytes (content);
     out.flush ();
     out.close ();
    
     con.connect();

通过这种方式,我成功地将一些数据传输到了我的服务器。现在我想知道能够通过这种方式传输多少数据?

我希望能够发送一些长度为100-200行的XML文件,我想知道是否可以做到这一点?

Jason


实际上,您应该使用 multipart/form-data 编码。另请参阅 https://dev59.com/vHE85IYBdhLWcg3wZyqt - BalusC
3个回答

5

文章正文(通常不称为参数,因为这通常意味着它会随URL一起传递)可以是任何长度,仅受配置限制。

由于POST用于实现文件上传,大多数系统允许相当大的正文。100-200行应该没有问题,除了那些最谨慎的配置之外。


2

长度没有限制,但是请记住您的请求可能会超时。GET 数据的大小限制为 4096 字节。


GET限制主要取决于所使用的Web浏览器,而且它并不明确为4096。更重要的是,HTTP规范规定了255的安全限制。另请参阅https://dev59.com/a3E85IYBdhLWcg3wr1ke。 - BalusC
其实是的,我在说4096时考虑到了特定的配置,你是对的。你提到的255是用于URL,而不是用于GET请求的参数。 - Ilya Saunkin

2

帖子的最大长度通常在服务器配置中进行设置,而不是客户端。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接