Я хотел бы отправить сообщение json в URL-адрес. Я нашел следующий код, который отлично работает для меня:HTTP-сообщение Json в Java
public void post(URL url, String json) {
try {
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
OutputStream os = conn.getOutputStream();
os.write(json.getBytes());
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
Но я только хочу, чтобы POST, и я не забочусь об ответе. Так что, когда я пытаюсь снять вторую часть (чтение с BufferedReader) он больше не работает:
public void post(URL url, String json) {
try {
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
OutputStream os = conn.getOutputStream();
os.write(json.getBytes());
os.close();
conn.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
Может кто-нибудь объяснить, почему?
Я не думаю, что промывка помогает. http://stackoverflow.com/questions/4844535/why-do-you-have-to-call-urlconnectiongetinputstream-to-be-able-to-write-out-to – Tapani
Как вы можете видеть в первом коде, я сделал Не нужно os.flush() работать правильно. И нет, это не помогает во втором коде. – njank
@ Тапани, спасибо, что указал! –