Android POST消息未收到已发送

时间:2011-06-21 11:51:13

标签: android html post

我遇到了一个相当奇怪的错误。我编写了一个将简单文本文件上传到服务器的android应用程序。连接的代码如下:

try {
    URL = new URL(myURL);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setDoInput(true);
    connection.setRequestMethod("POST");
    connection.setRequestProperty("Content-Type", "multipart/form-data; boundary="+"---");
    DataOutputStream output = new DataOutPutstream(connection.getOutputStream());
    output.writeBytes(<my post request>);
    output.flush();
    output.close();
    connection.connect();
}

当我运行此方法时,post请求永远不会发送到服务器。什么都没有显示在wireshark上,如果我查看logcat,没有错误,连接变得很好,POST消息就永远不会被发送。但是,如果我在connection.connect()之后添加一个简单的行,例如:

connection.getResponseCode();

突然发送POST消息没有问题。这里发生了什么?我是否需要获取响应代码才能将消息发送过来?

2 个答案:

答案 0 :(得分:0)

您将doInput设置为true。也许url连接因此而等待输入。尝试将其设置为false。但我也可能是错的。这只是猜测。

答案 1 :(得分:0)

  1. Why do you have to call URLConnection#getInputStream to be able to write out to URLConnection#getOutputStream? 简而言之,您必须调用getInputStream()并关闭它。 getResponseCode()也在工作,因为它需要建立连接。
  2. 您无需致电

    connection.connect(); 这是多余的。

  3. 您可以从此处获取工作样本:http://www.xyzws.com/Javafaq/how-to-use-httpurlconnection-post-data-to-web-server/139