2010-04-01 10 views
9
URL url = new URL("http://www.example.com/comment"); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setDoOutput(true); 
connection.setRequestMethod("POST"); 

Esconnection.setRequestProperty y escribir explícitamente en urloutputstream son ellos mismos?

connection.setRequestProperty(key, value); 

lo mismo que

OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); 
writer.write("key=" + value); 
writer.close(); 

?

Si no, corrígeme.

Respuesta

12

No, no lo es. El URLConnection#setRequestProperty() establece una solicitud encabezado. Para las solicitudes HTTP, puede encontrar todos los posibles encabezados here.

El writer simplemente escribe el cuerpo de la petición . En el caso de POST con contenido urlencoded, normalmente escribiría la cadena de consulta en el cuerpo de la solicitud en lugar de anexarla al URI de solicitud como en GET.

Dicho esto, connection.setDoOutput(true); ya establece implícitamente el método de la petición a POST en caso de un URI HTTP (porque está implícitamente requiere escribir en el cuerpo de la petición a continuación), por lo que haciendo un connection.setRequestMethod("POST"); después es innecesaria.

Cuestiones relacionadas