httpURLConnection:post 参数可以有多长?

Posted

技术标签:

【中文标题】httpURLConnection:post 参数可以有多长?【英文标题】:httpURLConnection: how long can a post argument be? 【发布时间】:2011-06-14 10:11:24 【问题描述】:

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

 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();

有了这个,我设法将一些数据传递到我的服务器。我现在想知道的是,这种方式可以发送多少?

我希望能够发送一些 xml 文件(100-200 行长)并且想知道我是否可以这样做?

杰森

【问题讨论】:

您实际上应该使用multipart/form-data 编码。另见***.com/questions/2793150/… 【参考方案1】:

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

由于 POST 用于实现文件上传,因此大多数系统都允许使用相当大的主体。 100-200 行根本不成问题,除了最偏执的配置。

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

任何长度,请记住您的请求可能会超时。 GET 数据限制为 4096 字节。

【讨论】:

GET 限制主要取决于所使用的网络浏览器,它不是明确的 4096。更重要的是,HTTP 规范规定了 255 的安全限制。另见***.com/questions/2659952/… 实际上是的,4096 我说考虑到特定的配置,你是对的。您所说的 255 是针对 URL 的,而不是针对您获取请求参数的请求。

以上是关于httpURLConnection:post 参数可以有多长?的主要内容,如果未能解决你的问题,请参考以下文章

java调用Http请求 -HttpURLConnection学习

Android的HttpUrlConnection类的GET和POST请求

android HttpURLConnection 中post 上传表单,在数据库中最后一个字段出现乱码

Android HttpUrlConnection Post 方法 - Json - Laravel API 对错误的响应

HttpURLConnection与HttpClient浅析AAAA

Android 中使用HttpURLConnection进行网络请求详解