Есть setDoOutput()
в URLConnection
. Согласно документации я должен
Установите для флага DoOutput значение true, если вы собираетесь использовать соединение URL для вывода, и false, если нет.
Теперь я столкнулся именно с этой проблемой - среда выполнения Java преобразует запрос в POST
один раз, setDoOutput(true)
а сервер отвечает только на GET
запросы. Я хочу понять, что произойдет, если я уберу это setDoOutput(true)
из кода.
На что именно это повлияет? Предположим, я установил false
- что я могу делать сейчас и что я не могу делать сейчас? Смогу ли я выполнять GET
запросы? Что такое «вывод» в контексте этого метода?
источник
setDoOutput(true)
используется дляPOST
иPUT
запросов. Если это так,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 )
Он принимает значение в качестве параметра и устанавливает это значение
doOutput
поля для этого URLConnection на указанное значение.URL-соединение может использоваться для ввода и / или вывода. Установите для флага DoOutput значение true, если вы собираетесь использовать соединение URL для вывода, и false, если нет. По умолчанию - false.
источник