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 POSTuna vez que setDoOutput(true)se llama y el servidor solo responde a las GETsolicitudes. 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 GETsolicitudes? ¿Qué es "salida" en el contexto de este método?
fuente

setDoOutput(true)se utiliza paraPOSTyPUTsolicita. Si esfalseasí, es para usarGETsolicitudes.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 requestfuente
public void setDoOutput( boolean dooutput )Toma un valor como parámetro y establece este valor del
doOutputcampo 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