#java #http #https
#java #http #https
Вопрос:
Какой метод запроса по умолчанию javax.net.ssl.HttpsURLConnection
? То есть по умолчанию используется GET
или POST
, если я явно не указываю какой-либо тип метода?
Какой тип метода используется в следующих кодах — GET?
или POST?
protected URLConnection createUrlConnection(URL url) throws IOException,
GeneralSecurityException, LinkKeyStoreException
{
URLConnection urlConnection = url.openConnection();
if (urlConnection instanceof HttpsURLConnection)
{
((HttpsURLConnection) urlConnection).setHostnameVerifier(Constants.ACCEPT_ALL_HOSTS);
((HttpsURLConnection) urlConnection).setSSLSocketFactory(createSSLSocketFactory());
}
urlConnection.setConnectTimeout(Constants.URL_CONNECT_TIMEOUT);
urlConnection.setReadTimeout(Constants.URL_READ_TIMEOUT);
urlConnection.setRequestProperty("Range", "bytes=" totalBytesDownloaded "-");
urlConnection.connect();
return urlConnection;
}
Ответ №1:
Методом по умолчанию является GET
, и Javadoc for HttpUrlConnection#setRequestMethod
намекает на это:
Задайте метод для запроса URL, один из: ПОЛУЧИТЬ ЗАГОЛОВОК СООБЩЕНИЯ, ПОМЕСТИТЬ ТРАССИРОВКУ УДАЛЕНИЯ, являются законными, с учетом ограничений протокола. Методом по умолчанию является GET.
Комментарии:
1. Не применимо к этому Q, и javadoc не говорит, но если вы предоставляете тело запроса с
.setDoOutput(true)
и.getOutputStream()
без явного изменения метода, он использует POST, поскольку HTTP запрещает body при GET .2. @dave_thompson_085 Да … Я также видел это
if
утверждение в исходном коде.
Ответ №2:
HttpURLConnection по умолчанию использует метод GET.