Hay setDoOutput()
en URLConnection
. Según la documentación debería
Establezca el indicador DoOutput en verdadero si tiene la intención de utilizar la conexión URL para la salida, falso en caso contrario.
Ahora me enfrento exactamente a este problema : el tiempo de ejecución de Java convierte la solicitud a POST
una vez que setDoOutput(true)
se llama y el servidor solo responde a las GET
solicitudes. Quiero entender qué sucede si elimino eso 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? ¿Podré realizar GET
solicitudes? ¿Qué es "salida" en el contexto de este método?
fuente
setDoOutput(true)
se utiliza paraPOST
yPUT
solicita. Si esfalse
así, es para usarGET
solicitudes.fuente
Agregando un comentario, si tiene una conexión duradera y envía GET y 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
fuente
public void setDoOutput( boolean dooutput )
Toma un valor como parámetro y establece este valor del
doOutput
campo para esta URLConnection en el valor especificado.Se puede utilizar 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 la salida, falso en caso contrario. El valor predeterminado es falso.
fuente