Что именно влияет на URLConnection.setDoOutput ()?

В setDoOutput() есть setDoOutput() . Согласно документации, я должен

Установите флаг DoOutput в значение true, если вы собираетесь использовать URL-соединение для вывода, false, если нет.

Теперь я столкнулся именно с этой проблемой – среда выполнения Java преобразует запрос в POST после setDoOutput(true) и сервер отвечает только на запросы GET . Я хочу понять, что произойдет, если я удалю этот setDoOutput(true) из кода.

Что именно это повлияет? Предположим, что я устанавливаю его в false – что я могу сделать сейчас и что я не могу сделать сейчас? Смогу ли я выполнить запросы GET ? Что такое «выход» в контексте этого метода?

Вам нужно установить значение true, если вы хотите отправить ( вывести ) тело запроса, например, с помощью запросов POST или PUT. С GET вы обычно не отправляете тело, так что вам это не нужно.

Отправка тела запроса осуществляется через выходной stream соединения:

 conn.getOutputStream().write(someBytes); 

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.

  • Экспорт и запуск проекта Unity3D в Android Studio
  • Экранная видеозапись текущей активности Android
  • Android, Java: HTTP POST Request
  • Java Object.hashCode () - адрес или случайный ()?
  • Не удается разрешить символ «GoogleCloudMessaging» GCM
  • Как преобразовать целое число цвета в шестнадцатеричную строку в Android?
  • Как получить текущий момент в формате ISO 8601 с датой, часом и минутой?
  • Как сохранить разрешение в API API 19 (KitKat)?
  • IntelliJ показывает подсказки параметров метода использования - Как отключить его
  • Сохранять широковещательный приемник после закрытия приложения
  • Android java.lang.VerifyError?
  • Давайте будем гением компьютера.