#java #apache #post #get #httpclient
#java #apache #Публикация #получить #httpclient
Вопрос:
Я обычно использую это:
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(postURL);
...
HttpResponse responsePOST = client.execute(post);
Можно ли передать параметры в комбинации GET и POST в одном запросе?
Я имею в виду, что некоторые параметры могут быть довольно длинными… и я не хочу использовать GET, я хочу POST, но для некоторых я действительно хочу GET.
И что?
Комментарии:
1. Это apache
HttpClient
, правильно?2. Почему нет? Кажется, это допустимый код, использующий Apache HttpClient API.
3. GET и POST имеют несколько разные значения. Вы не должны использовать один или другой только потому, что аргументы могут быть слишком длинными. Посмотрите, в чем разница между GET и POST ? . (GET следует использовать только для идемпотентных операций).
4. @Guillaume Harry означает «нет» на исходный вопрос, а не на комментарий mre.
5. Я прочитал статью ( википедия для «идемпотентности»)… и в последнем разделе указано ~ для данных большой формы используйте POST. Но да, не могу использовать оба.
Ответ №1:
GET и POST являются взаимоисключающими, Вы выполняете одно или другое (или HEAD, PUT и т. Д.). Запрос не может быть обоими.
Комментарии:
1. Однако вы можете передать параметры в URL-адресе запроса POST. Однако обычно это не очень хорошая идея.
Ответ №2:
Согласно протоколу, один HTTP-запрос является либо GET, либо POST . Невозможно создать HTTP-заголовок для обоих одновременно.
Однако
-
Запрос POST должен быть направлен на URL-адрес с параметрами запроса (данные после ?), И сервер может их прочитать.
-
запрос GET может содержать содержимое, и сервер может его прочитать.