Я использую команду "curl -X DELETE --header 'Accept: application / json' 'http://10.10.1.29:8181/onos/v1/flows/application/olsrflow' -u karaf: karaf"
Это может работать.
но использовать код JAVA не получается.
есть проблемы с моим кодом JAVA?
URL dc0ContrailUrl2 = new URL("http://10.10.1.29:8181/onos/v1/flows/application/olsrflow");
HttpURLConnection dcConn2 = (HttpURLConnection) dc0ContrailUrl2.openConnection();
dcConn2.setDoOutput(true);
String login = "karaf:karaf";
String content = URLEncoder.encode (login) ;
String basicAuth = "Basic " + new String(new Base64().encode(login.getBytes()));
dcConn2.setRequestProperty("Authorization",basicAuth);
dcConn2.setRequestProperty("Content-Type", "application/json");
dcConn2.setRequestMethod("DELETE");
BufferedReader in2 = new BufferedReader(new InputStreamReader(dcConn2.getInputStream()));
String inputLine2;
while ((inputLine2 = in2.readLine()) != null){ //while response is not null, assign response to inputLine and print inputLine
System.out.println(inputLine2);
}
in2.close();
ошибка код ответа HTTP: 415




Обычно это означает, что сервер не поддерживает MediaType. Вы должны выяснить, чего он ожидает, и соответствующим образом настроить это в своем запросе.
Вы не добавили тип Accept так же, как curl. Добавьте следующую строку и удалите Content-Type:
dcConn2.setRequestProperty("Accept", "application/json");
Разве вы не получили бы 406 Not Acceptable, если бы проблема была в Accept? 415 часто касается Content-Type. В запросе cURL OP не устанавливает Content-Type, но в Java-коде они задаются. Возможно, простое удаление Content-Type в коде Java решит проблему.
Дорогой Пол, ты прав. На самом деле я имею в виду заменить контент на accept.
Есть разница в заголовке (команда curl) и свойствах запроса (код Java). Для получения дополнительной информации см .: webmasters.stackexchange.com/questions/31212/…