当前位置: 首页 > 知识库问答 >
问题:

在java中使用rest API删除Bitbucket分支

危阳
2023-03-14

尝试使用rest api删除bibucket分支,但总是得到405、415或500作为响应代码。下面给出了代码片段。请引导!

String endPoint = "BASE_URL/rest/branch-utils/1.0/projects/<PROJECT>/repos/<REPO>/branches";
String requestJson = "{\"name\":\"refs/heads/feature/TEST\",\"dryRun\":\"false\"}";
HttpClient client = HttpClientBuilder.create().build();
HttpPut putRequest = new HttpPut(endPoint);
putRequest.addHeader("accept", "application/json");
putRequest.addHeader(AUTHORIZATION, BASIC + "passwordencrypted");

StringEntity input = new StringEntity(requestJson, StandardCharsets.UTF_8);
input.setContentType("application/json");
putRequest.setEntity(input);

HttpResponse response = client.execute(putRequest);
System.out.println("StatusCode :: " + response.getStatusLine().getStatusCode());

BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
String output;
StringBuffer result = new StringBuffer();
while ((output = br.readLine()) != null) {
result.append(output);
}
System.out.println("FINAL :: " + result.toString());

还尝试了邮递员,下面是错误。任何帮助都将不胜感激!

{
"errors": [
{
"context": null,
"message": "An error occurred while processing the request. Check the server logs for more information.",
"exceptionName": null
}
]
}

我也尝试过Post方法,它也会导致同样的问题。Java语言io。IOException:服务器返回了sun上URL的HTTP响应代码415。网www.protocol。http。HttpURLConnection。sun上的getInputStream0(HttpURLConnection.java:1900)。网www.protocol。http。HttpURLConnection。sun上的getInputStream(HttpURLConnection.java:1498)。网www.protocol。https。HttpsURLConnectionImpl。com上的getInputStream(HttpsURLConnectionImpl.java:268)。美国银行。仪表板德尔比特巴克特分行。在com上测试(DelBitbucketBranch.java:170)。美国银行。仪表板德尔比特巴克特分行。main(DelBitbucketBranch.java:31)

public static void test() throws JSONException {
        try {

            String endPoint = "BASE_URL/rest/branch-utils/1.0/projects/<PROJECT>/repos/<REPO>/branches";
            URL url = new URL(endPoint);

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Accept", "application/json");
            conn.setRequestProperty("Authorization", "Basic " + passwordencrpted);
            conn.setDoOutput(true);
            conn.setDoInput(true);

            String requestJson = "{\"name\":\"refs/heads/feature/TEST\",\"dryRun\":\"false\"}";
            DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
            wr.write(requestJson.getBytes());

            InputStream inputStream = conn.getInputStream();
            ByteArrayOutputStream result = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int length;

            while ((length = inputStream.read(buffer)) != -1) {
                result.write(buffer, 0, length);
            }
            String jsonStr = result.toString(UTF_8);

            System.out.println(jsonStr);

            wr.flush();
            wr.close();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (ProtocolException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

共有2个答案

魏翔
2023-03-14

谢谢塔伦!我尝试了Delete方法,它工作得很好,但没有提供任何响应。Delete似乎没有返回任何内容。代码工件:)

public static void test() throws JSONException {
        try {

            String endPoint = "BASE_URL/rest/branch-utils/1.0/projects/<PROJECT>/repos/<REPO>/branches";
            URL url = new URL(endPoint);

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("DELETE");
            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("Authorization", "Basic " + passwordencrpted);
            conn.setDoOutput(true);
            conn.setDoInput(true);

            String requestJson = "{\"name\":\"refs/heads/feature/TEST\",\"dryRun\":\"false\"}";
            DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
            wr.write(requestJson.getBytes());

            InputStream inputStream = conn.getInputStream();
            ByteArrayOutputStream result = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int length;

            while ((length = inputStream.read(buffer)) != -1) {
                result.write(buffer, 0, length);
            }
            String jsonStr = result.toString(UTF_8);

            System.out.println(jsonStr);

            wr.flush();
            wr.close();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (ProtocolException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
嵇丰
2023-03-14

问题可能是用于rest调用的“方法”。

您应该使用DELETE或POST方法,请参阅下面的链接。

REST资源提供者:Bitbucket服务器-分支

 类似资料:
  • 问题内容: 我想从一个字符中删除一部分字符串,即: 源字符串: 目标字符串: 问题答案: 有多种方法可以做到这一点。如果您有要替换的字符串,则可以使用该类的或方法。如果您要替换子字符串,则可以使用API 获得该子字符串。 例如 要替换“()”中的内容,可以使用:

  • 本文向大家介绍如何使用Java在MongoDB中删除索引?,包括了如何使用Java在MongoDB中删除索引?的使用技巧和注意事项,需要的朋友参考一下 在MongoDB中删除索引,您需要使用dropIndex()方法。 语法 在Java中,可以使用dropIndex()方法删除索引,您需要将索引的类型(升序或降序)和在其上创建字段的名称传递给该方法。 示例 输出结果

  • 本文向大家介绍如何使用Java在MongoDB中删除数据库?,包括了如何使用Java在MongoDB中删除数据库?的使用技巧和注意事项,需要的朋友参考一下 MongoDB db.dropDatabase()命令用于删除现有数据库。这将删除当前数据库。如果您未选择任何数据库,则将删除默认(测试)数据库。 语法 在Java中,要删除数据库,首先,使用getDatabase()方法获取所需数据库的对象,

  • 假设我们在 “contact-form” 分支上的工作已经完成了。并且我们也已经把最终的改动整合到了 “master” 分支。现在我们就不再需要这个分支了。把它删除掉吧: $ git branch -d contact-form 为了保持一致,我们也有必要删除它所对应的远程分支。附加上一个 “-r” 参数就可以了: $ git branch -dr origin/contact-form

  • 问题内容: 使用Java等同于s 的字符串需要发生什么 假设它来自我正在读取的文件。 问题答案: Java无法正确处理BOM。实际上,Java像处理其他所有char一样处理BOM。 发现了这一点: http://www.rgagnon.com/javadetails/java-handle-utf8-file-with- bom.html 可能是我改用apache IO: http://commo

  • 我有一个管理Web应用程序位于远程服务器上。这个应用程序是使用MEAN堆栈编写的,我有一个连接到网络应用程序所需的所有RESTful路由的列表。 我正在编写一个Java客户端应用程序,它需要从这个管理应用程序发送和接收数据。如果我有服务器的IP地址和REST路由,如何将客户端连接到web应用程序? 我想我需要提供一个到服务器和RESTAPI文件的URL连接,然后只需调用路由函数,如和。