尝试通过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.create
和restapi.query
我不知道可能是什么问题,我认为它必须归因于SSO问题,并且还发现源代码说当您尝试通过Rally API进行操作时,Rally APIS需要安全令牌。请参阅Rally Web Services API Documentation v2.0/Autorization
请指导/帮助。
答案 0 :(得分:1)
Rally的SDK工具包尚不支持SSO。如果您的组织使用SSO,则需要让您的Rally管理员将您的UserID添加到白名单,以便您可以使用/或SSO / Rally凭据。
请注意,Java REST工具包将为您处理所有身份验证令牌管理,因此您无需担心获取或维护API身份验证密钥。 java工具包可以帮到你。
最后一种可能是您和Rally之间有代理服务器。如果是这种情况,您可以通过以下方式配置代理:
restApi.setProxy(new URI(proxyserver));