Jest setDoOutput()
w URLConnection
. Zgodnie z dokumentacją powinienem
Ustaw flagę DoOutput na true, jeśli zamierzasz używać połączenia URL do danych wyjściowych, false, jeśli nie.
Teraz mam dokładnie ten problem - środowisko wykonawcze Java konwertuje żądanie na POST
raz setDoOutput(true)
wywołane, a serwer odpowiada tylko na GET
żądania. Chcę wiedzieć, co się stanie, jeśli usunę to setDoOutput(true)
z kodu.
Na co to dokładnie wpłynie? Przypuśćmy, że ustawię to na false
- co mogę zrobić teraz, a czego nie mogę teraz? Czy będę mógł wykonywać GET
żądania? Co to jest „wynik” w kontekście tej metody?
źródło
setDoOutput(true)
jest używany doPOST
iPUT
żądań. Jeśli tak,false
to służy do korzystania zGET
żądań.źródło
Dodając komentarz, jeśli masz długotrwałe połączenie i wysyłasz zarówno GET, jak i POST, oto co robię:
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"); }
Aby uniknąć długotrwałego połączenia, zamykaj je za każdym razem.
if (doClose) // some boolean con.setRequestProperty("Connection", "close"); con.connect(); // force connect request
źródło
public void setDoOutput( boolean dooutput )
Przyjmuje wartość jako parametr i ustawia tę wartość
doOutput
pola dla tego połączenia URL na określoną wartość.Do wprowadzania i / lub wyprowadzania można użyć połączenia URL. Ustaw flagę DoOutput na true, jeśli zamierzasz używać połączenia URL do danych wyjściowych, false, jeśli nie. Wartość domyślna to false.
źródło