我遇到了一个相当奇怪的错误。我编写了一个将简单文本文件上传到服务器的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消息没有问题。这里发生了什么?我是否需要获取响应代码才能将消息发送过来?
答案 0 :(得分:0)
您将doInput设置为true。也许url连接因此而等待输入。尝试将其设置为false。但我也可能是错的。这只是猜测。
答案 1 :(得分:0)
您无需致电
connection.connect(); 这是多余的。
您可以从此处获取工作样本:http://www.xyzws.com/Javafaq/how-to-use-httpurlconnection-post-data-to-web-server/139