Я хочу знать, возможно ли отправить запрос PUT, DELETE (практически) через java.net.HttpURLConnection
URL на основе HTTP.
Я прочитал так много статей, описывающих, как отправлять запросы GET, POST, TRACE, OPTIONS, но я до сих пор не нашел ни одного примера кода, который успешно выполняет запросы PUT и DELETE.
java
httpurlconnection
put
http-delete
матрица
источник
источник
Ответы:
Чтобы выполнить HTTP PUT:
Чтобы выполнить HTTP-УДАЛЕНИЕ:
источник
delete
. Когда я запускаю этот код как есть, ничего не происходит, запрос не отправляется. Та же ситуация, когда я делаюpost
запросы, но там я могу использовать, например,httpCon.getContent()
который запускает запрос. Но этоhttpCon.connect()
ничего не вызывает в моей машине :-)Вот как это работает для меня:
источник
Тогда в вашем коде:
источник
Я согласен с @adietisheim и остальными людьми, которые предлагают HttpClient.
Я потратил время, пытаясь сделать простой вызов службы отдыха с HttpURLConnection, и это меня не убедило, и после этого я попробовал с HttpClient, и это было действительно проще, понятнее и приятнее.
Пример кода для выполнения HTTP-вызова put выглядит следующим образом:
источник
HttpURLConnection
для работы, но продолжал работать в нечетные ошибки, а именно:cannot retry due to server authentication, in streaming mode
. Следуя вашему совету, у меня сработало. Я понимаю, что это не совсем ответ на вопрос, который предлагается использоватьHttpURLConnection
, но ваш ответ мне помог.UrlConnection - неудобный API для работы. HttpClient - безусловно, лучший API, и он избавит вас от потери времени на поиски того, как достичь определенных вещей, как это прекрасно иллюстрирует этот вопрос о stackoverflow. Я пишу это после того, как использовал jdk HttpUrlConnection в нескольких клиентах REST. Кроме того, когда дело доходит до функций масштабируемости (таких как пулы потоков, пулы соединений и т. Д.), HttpClient превосходит
источник
Чтобы правильно выполнить PUT в HTML, вам нужно будет окружить его try / catch:
источник
Шаблон Even Rest может быть вариантом:
источник
есть простой способ удалить и поместить запрос, вы можете просто сделать это, добавив
_method
параметр " " в свой почтовый запрос и написав "PUT
" или "DELETE
" для его значения!источник
Я бы порекомендовал Apache HTTPClient.
источник