java - example - ¿Qué afecta exactamente a URLConnection.setDoOutput()?
httpurlconnection example (4)
Hay setDoOutput()
en URLConnection
. De acuerdo con la documentation que debería
Establezca el indicador DoOutput en verdadero si tiene la intención de utilizar la conexión URL para el resultado, falso si no.
Ahora me enfrento exactamente a este problema : el tiempo de ejecución de Java convierte la solicitud en POST
una vez que se setDoOutput(true)
y el servidor solo responde a las solicitudes GET
. Quiero entender qué sucede si setDoOutput(true)
ese setDoOutput(true)
del código.
¿Qué afectará esto exactamente? Supongamos que lo configuro en false
, ¿qué puedo hacer ahora y qué no puedo hacer ahora? ¿ GET
realizar solicitudes GET
? ¿Qué es "salida" en el contexto de este método?
Debe establecerlo en verdadero si desea enviar ( salida ) un cuerpo de solicitud, por ejemplo, con solicitudes POST o PUT. Con GET, generalmente no envía un cuerpo, por lo que no lo necesita.
El envío del cuerpo de la solicitud se realiza a través del flujo de salida de la conexión:
conn.getOutputStream().write(someBytes);
Si agrega un comentario, si tiene una conexión de larga duración y envía tanto GET como POST, esto es lo que hago:
if (doGet) { // some boolean
con.setDoOutput(false); // reset any previous setting, if con is long lasting
con.setRequestMethod("GET");
}
else {
con.setDoOutput(true); // reset any previous setting, if con is long lasting
con.setRequestMethod("POST");
}
Y para evitar que la conexión sea duradera, ciérrela cada vez.
if (doClose) // some boolean
con.setRequestProperty("Connection", "close");
con.connect(); // force connect request
setDoOutput(true)
se usa para POST
y PUT
. Si es false
entonces es para usar las solicitudes GET
.
public void setDoOutput( boolean dooutput )
Toma un valor como parámetro y establece este valor del campo doOutput
para esta URLConnection en el valor especificado.
Se puede usar una conexión URL para entrada y / o salida. Establezca el indicador DoOutput en verdadero si tiene la intención de utilizar la conexión URL para el resultado, falso si no. El valor predeterminado es falso.