Es gibt setDoOutput()
in URLConnection
. Laut Dokumentation sollte ich
Setzen Sie das DoOutput-Flag auf true, wenn Sie die URL-Verbindung für die Ausgabe verwenden möchten, andernfalls auf false.
Jetzt stehe ich genau vor diesem Problem : Die Java-Laufzeit konvertiert die Anforderung so, dass sie POST
einmal setDoOutput(true)
aufgerufen wird und der Server nur auf GET
Anforderungen reagiert . Ich möchte verstehen, was passiert, wenn ich das setDoOutput(true)
aus dem Code entferne .
Was genau wird dies beeinflussen? Angenommen, ich stelle es auf false
- was kann ich jetzt tun und was kann ich jetzt nicht tun? Kann ich GET
Anfragen ausführen ? Was ist "Ausgabe" im Kontext dieser Methode?
quelle
setDoOutput(true)
wird fürPOST
undPUT
Anfragen verwendet. Wenn dies derfalse
Fall ist, werdenGET
Anforderungen verwendet.quelle
Wenn Sie einen Kommentar hinzufügen, wenn Sie eine langjährige Verbindung haben und sowohl GETs als auch POSTs senden, mache ich Folgendes:
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"); }
Schließen Sie die Verbindung jedes Mal, um eine dauerhafte Verbindung zu vermeiden.
if (doClose) // some boolean con.setRequestProperty("Connection", "close"); con.connect(); // force connect request
quelle
public void setDoOutput( boolean dooutput )
Es nimmt einen Wert als Parameter und setzt diesen Wert von
doOutput
Feldes für diese URLConnection auf den angegebenen Wert.Eine URL-Verbindung kann zur Eingabe und / oder Ausgabe verwendet werden. Setzen Sie das DoOutput-Flag auf true, wenn Sie die URL-Verbindung für die Ausgabe verwenden möchten, andernfalls auf false. Der Standardwert ist false.
quelle