我正在尝试使用 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());
最佳答案
URLCOnnection
类需要完整的握手才能发生 POST。这意味着,一旦打开连接,就必须读回响应才能真正发生 POST。
关于java HttpUrlConnection POST : need to ask for a response for the POST to be committed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10594109/