2

我们正在尝试使用 Rest 端点与 uDeploy 集成。我找不到任何好的文档/教程。HTTP Get 请求工作正常,但 PUT、POST、DELETE 操作需要通过身份验证。我尝试提供用户名密码以及 JSESSIONID。这是错误消息:

错误 401:未经授权。请求缺少存储的会话 ID。

请求是:

放置 https:// UDEPLOY -END-POINT/rest/deploy/application/54e73305-cb50-4192-8c43-e37bdb9932de/runProcess

标题是:

接受编码:gzip、deflate、sdch、br

接受语言:en-US,en;q=0.8

连接:保持活动

内容长度:304

内容类型:应用程序/json

饼干:JSESSIONID_9080=8C686C10312E552DE0714944283B3159;时间线停靠=真;时间线扩展=真

主办方:itec-udeploy.fmr.com

来源:https://UDEPLOY-END-POINT

推荐人:https://UDEPLOY-END-POINT

用户代理:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

X-Requested-With:XMLHttpRequest

授权:XXXXXXXXXXXXXXX

身体 :

{"applicationId":"64876c59...","applicationProcessId":"3713c68b....","description":"","environmentId":"2aae4c4a...","onlyChanged":"false", "properties":{},"scheduleCheckbox":false,"snapshotId":"255e2208..."}

4

1 回答 1

2

好的,我正在发布我问自己的问题的答案。为了通过 Java 使用 REST Api 与 uDeploy 交互,您需要 "udclient.jar" ,它在 uDeploy 安装目录中可用。这是一个示例 java 程序:

@Override
public String retrieve(String url, String userName, String password, boolean trustAllCerts) {
HttpClientBuilder httpClientBuilder = new HttpClientBuilder();
httpClientBuilder.setUsername(userName);
httpClientBuilder.setPassword(password);
httpClientBuilder.setTrustAllCerts(trustAllCerts);

    DefaultHttpClient client = httpClientBuilder.buildClient();

    int statusCode = 0;
    StringBuilder stringBuilder = new StringBuilder();

    try {
        HttpGet request = new HttpGet(new URI(getEncodedUrl(url)));
        org.apache.http.HttpResponse resp = client.execute(request);
        BufferedReader br = new BufferedReader ( 
                new InputStreamReader(resp.getEntity().getContent()));

        statusCode = resp.getStatusLine().getStatusCode();

        String currentLine = null;
        while ((currentLine = br.readLine()) != null){
            stringBuilder = stringBuilder.append(currentLine);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
return stringBuilder.toString();
}

public static void main(String[] args) {
String uDeployUrl = "";
String userName = "";
String password = "";
boolean trustAllCerts = true;
String response = retrieve(uDeployUrl ,userName ,password ,trustAllCerts );
}
于 2017-04-11T10:34:19.223 回答