Pregunta
URL url = new URL("http://www.example.com/comment");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
Es
connection.setRequestProperty(key, value);
lo mismo que
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.write("key=" + value);
writer.close();
?
Si no es así, por favor, corríjanme.
Solución
No, no es. los URLConnection#setRequestProperty()
establece una solicitud encabezamiento. Para las solicitudes HTTP, puede encontrar todos los encabezados posibles aquí.
los writer
Solo escribe la solicitud cuerpo. En caso de POST
Con el contenido de URLEncoded, normalmente escribiría la cadena de consulta en el cuerpo de solicitud en lugar de agregarla a la solicitud URI como en GET
.
Dicho esto, connection.setDoOutput(true);
ya establece implícitamente el método de solicitud para POST
En caso de un URI HTTP (porque se requiere implícitamente escribir en el cuerpo de solicitud), así que hacer un connection.setRequestMethod("POST");
Posteriormente es innecesario.