我正在使用Gitlab Api v3执行某些任务。我正在使用Java。

我可以执行所有Get操作,还可以通过Post请求(使用admin用户的私有令牌)创建一个新项目。

现在,我正在尝试将该项目移至特定的组。但是我很难理解如何使用文档"transfer project to group"中给出的信息创建发布请求(Java)。

预先感谢您的帮助

编辑:我的代码

    public void moveProjectToGroup(String projectName, String groupName) throws IOException
{
    int id_project = getProjectId(projectName); //32
    int id_group = getGroupId(groupName); //14

    System.out.println("project id:"+id_project+"\t group id:"+id_group);


    String urlParameters = "groups/:"+id_group+"/projects/:"+id_project;


    System.out.println(remote); // http://mygitlab/api/v3/
    System.out.println(remote+urlParameters); //http://mygitlab/api/v3/groups/:14/projects/:32

    URL url = new URL(remote);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setDoInput(true);
    connection.setInstanceFollowRedirects(false);
    connection.setRequestMethod("POST");
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    connection.setRequestProperty("charset", "utf-8");
    connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
    connection.setRequestProperty("PRIVATE-TOKEN", "7wHppgzq4HxbxvZVWyso"); // my admin token
    connection.setUseCaches (false);

    DataOutputStream wr = new DataOutputStream(connection.getOutputStream ());
    wr.writeBytes(urlParameters);
    wr.flush();
    wr.close();
    connection.disconnect();
}

最佳答案

您可以尝试遵循“ Java - sending HTTP parameters via POST method easily”中描述的方法,除了String urlParameters,您可以将这些参数替换为“ Transfer project to group”部分中提到的参数:

String id            = ... // (the right group id);
String project_id    = ... // (the right project id);
String urlParameters = "/groups/:"+id+"/projects/:"+project_id;

07-28 01:43
查看更多