HttpURLConnection отправляет запрос POST, даже если httpCon.setRequestMethod ("GET"); устанавливается
вот мой код:
String addr = "http://172.26.41.18:8080/domain/list";
URL url = new URL(addr);
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setDoOutput(true);
httpCon.setDoInput(true);
httpCon.setUseCaches(false);
httpCon.setAllowUserInteraction(false);
httpCon.setRequestMethod("GET");
httpCon.addRequestProperty("Authorization", "Basic YWRtaW4fYFgjkl5463");
httpCon.connect();
OutputStreamWriter out = new OutputStreamWriter(httpCon.getOutputStream());
System.out.println(httpCon.getResponseCode());
System.out.println(httpCon.getResponseMessage());
out.close();
что я вижу в ответ:
500 ошибка сервера
Я httpCon
VAR, и что я вижу:
POST/rest/платформа/домен / список HTTP / 1.1
почему он установлен на POST, хотя я использовал httpCon.setRequestMethod("GET");
установить ее получить?
1 ответов
на httpCon.setDoOutput(true);
неявно установите метод запроса в POST, потому что это метод по умолчанию, когда вы хотите отправить тело запроса.
если вы хотите использовать GET, удалите эту строку и удалите OutputStreamWriter out = new OutputStreamWriter(httpCon.getOutputStream());
линии. Вам не нужно отправлять тело запроса для запросов GET.
следует сделать простой GET запрос:
String addr = "http://172.26.41.18:8080/domain/list";
URL url = new URL(addr);
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setUseCaches(false);
httpCon.setAllowUserInteraction(false);
httpCon.addRequestProperty("Authorization", "Basic YWRtaW4fYFgjkl5463");
System.out.println(httpCon.getResponseCode());
System.out.println(httpCon.getResponseMessage());
Читайте также:
связаны к конкретной проблеме, часть пароля вашего Authorization
значение заголовка, похоже, неправильно закодировано в Base64. Возможно, это скремблировано, потому что это был пример, но даже если бы это было не так, я бы исправил ваш подход к кодированию Base64.