0

我使用命令“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

4

2 回答 2

1

您没有添加与 curl 相同的 Accept 类型。添加以下行并删除 Content-Type:

 dcConn2.setRequestProperty("Accept", "application/json");
于 2018-04-25T12:39:21.087 回答
-1

通常这意味着服务器不支持 MediaType 已通过。您必须弄清楚它的期望并相应地在您的请求中进行设置。

于 2018-04-25T12:18:45.857 回答