在java中尝试通过Rally API创建/更新/删除/查询集会时获取HTTP / 1.1 401 Unauthorized Exception

时间:2014-01-28 00:59:19

标签: java api rally http-status-code-401 unauthorized

尝试通过java中的Rally API创建/更新/删除/查询集会时获取HTTP / 1.1 401未经授权的异常

// Create and configure a new instance of RallyRestApi
    RallyRestApi restApi = new RallyRestApi(new URI("https://rally1.rallydev.com"),"sphoortix.patil@foo.com", "Foo@123");
    restApi.setWsapiVersion("v2.0");
    restApi.setApplicationName("Add Test Case Result");


    //Query User
    QueryRequest userRequest = new QueryRequest("User");
    String workSpace = userRequest.getWorkspace();
    userRequest.setFetch(new Fetch("UserName", "Subscription", "DisplayName"));
    userRequest.setQueryFilter(new QueryFilter("UserName", "=", "sphoortix.patil@foo.com"));
    QueryResponse userQueryResponse = restApi.query(userRequest);
    JsonArray userQueryResults = userQueryResponse.getResults();
    JsonElement userQueryElement = userQueryResults.get(0);
    JsonObject userQueryObject = userQueryElement.getAsJsonObject();
    String userRef = userQueryObject.get("_ref").getAsString();

    // Query for Test Case to which we want to add results
    QueryRequest testCaseRequest = new QueryRequest("TestCase");
    testCaseRequest.setFetch(new Fetch("FormattedID","Name"));
    testCaseRequest.setQueryFilter(new QueryFilter("FormattedID", "=", "TC1147"));
    QueryResponse testCaseQueryResponse = restApi.query(testCaseRequest);
    JsonObject testCaseJsonObject = testCaseQueryResponse.getResults().get(0).getAsJsonObject();
    String testCaseRef = testCaseQueryResponse.getResults().get(0).getAsJsonObject().get("_ref").getAsString();

我正在Exception in thread "main" java.io.IOException: HTTP/1.1 401 Unauthorized

每个restap.get

异常; restapi.createrestapi.query

我不知道可能是什么问题,我认为它必须归因于SSO问题,并且还发现源代码说当您尝试通过Rally API进行操作时,Rally APIS需要安全令牌。请参阅Rally Web Services API Documentation v2.0/Autorization

请指导/帮助。

1 个答案:

答案 0 :(得分:1)

Rally的SDK工具包尚不支持SSO。如果您的组织使用SSO,则需要让您的Rally管理员将您的UserID添加到白名单,以便您可以使用/或SSO / Rally凭据。

请注意,Java REST工具包将为您处理所有身份验证令牌管理,因此您无需担心获取或维护API身份验证密钥。 java工具包可以帮到你。

最后一种可能是您和Rally之间有代理服务器。如果是这种情况,您可以通过以下方式配置代理:

restApi.setProxy(new URI(proxyserver));