0

我正在尝试使用 java HttpUrlConnection 类在服务器上发布数据。似乎如果我以某种方式阅读服务器的响应,则帖子工作正常,但如果我不这样做,则永远不会发布信息。

HttpUrlConnection 文档中没有提到这种行为,我看到的所有 HttUrlConnection 示例都要求服务器做出响应。

我想知道我的代码中是否有错误,或者这是否是 HttpUrlConnection 的正常行为,如果是这种情况,那么对这个类的工作原理有更好理解的人可以向我解释为什么会这样吗?

非常感谢!

这是代码,注释行是使 POST 工作或失败的代码:

URL url=new URL("myUrl");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
connection.setRequestProperty("Host", "myHost");
connection.setDoOutput(true);
os.write(staffToPost.getBytes("utf-8"));
os.flush();
os.close();
//System.out.println(connection.getResponseCode()+" "+connection.getResponseMessage());
4

2 回答 2

2

该类URLCOnnection需要一个完整的握手才能发生 POST。这意味着,一旦您打开连接,您必须回读响应以使 POST 实际发生。

于 2012-05-15T05:04:27.327 回答
0

您可以显式调用URLConnection.connect()或获取有关 HTTP 响应的任何信息,例如HttpURLConnection.getResponseCode等来触发 HTTP 请求。

您应该阅读这篇关于如何使用 java.net.URLConnection 触发和处理 HTTP 请求的综合文章,以便更好地理解。

于 2012-05-15T04:39:27.047 回答