Параметры URL и текст сообщения в том же запросе Apache httpclient?

#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 может содержать содержимое, и сервер может его прочитать.