Что именно делает URLConnection.setDoOutput() влияет?
здесь setDoOutput()
на URLConnection
. Согласно документация я должен
установите флаг DoOutput в true, если вы собираетесь использовать URL-соединение для вывода, false, если нет.
теперь я стою перед именно эта проблема - среда выполнения Java преобразует запрос в POST
после setDoOutput(true)
вызывается, и сервер отвечает только на GET
запросы. Я хочу понять, что произойдет, если я удалить setDoOutput(true)
от код.
на что именно это повлияет? Предположим, я установлю его в false
- что я могу сделать сейчас и что я могу сделать сейчас? Смогу ли я выступить GET
запросы? Что такое "выход" в контексте этого метода?
4 ответов
Если вы хотите отправить (выход) тело запроса, например, с запросами POST или PUT. С GET вы обычно не отправляете тело, поэтому оно вам не нужно.
отправка самого тела запроса выполняется через выходной поток соединения:
conn.getOutputStream().write(someBytes);
добавление комментария, если у вас есть длительное соединение, и вы отправляете как Get, так и POSTs, это то, что я делаю:
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 )
принимает значение в качестве параметра, и задает значение