簡體   English   中英

URLConnection.setDoOutput()究竟是什么影響的?

[英]What exactly does URLConnection.setDoOutput() affect?

URLConnectionsetDoOutput() 根據文件,我應該

如果您打算將URL連接用於輸出,請將DoOutput標志設置為true,否則設置為false。

現在我正面臨着這個問題 - 一旦setDoOutput(true) ,Java運行時將請求轉換為POST ,服務器只響應GET請求。 我想了解如果從代碼中刪除setDoOutput(true)會發生什么。

這到底會產生什么影響? 假設我把它設置為false - 我現在能做什么,現在做什么不能做? 我能夠執行GET請求嗎? 在這種方法的背景下什么是“輸出”?

如果要發送( 輸出 )請求主體(例如,使用POST或PUT請求),則需要將其設置為true。 使用GET,您通常不會發送身體,因此您不需要它。

發送請求正文本身是通過連接的輸出流完成的:

conn.getOutputStream().write(someBytes);

setDoOutput(true)用於POSTPUT請求。 如果它是false那么它是用於使用GET請求。

添加注釋,如果你有一個持久的連接,並且你發送了GET和POST,這就是我的工作:

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");
}

並且為了避免連接持久,請每次關閉它。

if (doClose)    // some boolean
    con.setRequestProperty("Connection", "close");

con.connect();              // force connect request
public void setDoOutput( boolean dooutput )

它將一個值作為參數,並將此URLConnection的doOutput字段的此值設置為指定值。

URL連接可用於輸入和/或輸出。 如果您打算將URL連接用於輸出,請將DoOutput標志設置為true,否則設置為false。 默認值為false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM