我现在的需求是向服务器发送一个POST请求,代码如下: 
URL   url   =   new   URL("http://www.xxxx.com"); 
HttpURLConnection   conn   =   (HttpURLConnection)   url.openConnection(); 
conn.setDoOutput(true); 
conn.setRequestMethod("POST"); InputStream   in   =   (InputStream)   conn.getInputStream(); 
InputStreamReader   reader   =   new   InputStreamReader(in,   "utf8"); 
int   charInt   =   reader.read(); 
String   responseContent   =   ""; 
while   (charInt   !=   -1)   { 
        responseContent   =   responseContent   +   (char)charInt; 
        charInt   =   reader.read(); 
} 如果conn.setRequestMethod("GET");程序执行就没有问题。换成POST程序报错:java.io.IOException:   Server   returned   HTTP   response   code:   411   for   URL:XXXXXX.... 
上网查了一下,411错误是没指定content-length,请问大家这个怎么解决。

解决方案 »

  1.   

    建议用 HTTPClient http://hc.apache.org/
      

  2.   

    去查一下HTTP协议吧,GET是使用消息头来传递的,而POST使用的消息的内容。
      

  3.   

    重复问题,你声明了你要POST,你POST的内容呢??   请参考       URL url = new URL(".......");
          HttpURLConnection con = (HttpURLConnection) url.openConnection();
          con.setDoOutput(true); // POST方式
          con.setRequestMethod("POST");
          OutputStream os = con.getOutputStream(); // 输出流,写数据
          os.write("..........".getBytes());
          BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream())); // 读取结果
          String line;
          while ((line = reader.readLine()) != null) {
            System.out.println(line);
          }原文地址: 
    http://www.java2000.net/viewthread.jsp?tid=302