0

您好我正在尝试使用 RestTemplate 获取 MarkLogic 中的图表列表。下面是示例代码。从浏览器我可以获取图表列表,但通过 Java REST 客户端我收到错误 401。

HttpHeaders header = new HttpHeaders();
String plainCreds = "restadmin:restpassword";
byte[] plainCredsBytes = plainCreds.getBytes();
byte[] base64CredsBytes = Base64.encode(plainCredsBytes);
String base64Creds = new String(base64CredsBytes);
header.setAccessControlAllowCredentials(true);
header.add("Authorization", "Basic " + base64Creds);
header.setAccept(Arrays.asList(MediaType.TEXT_XML));
header.setContentType(MediaType.TEXT_XML);
HttpEntity<String> entity = new HttpEntity<String>(header);

String url = "http://localhost:8003/v1/graphs";
ResponseEntity response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
System.out.println("Response : "+response.getStatusCode());

请帮我解决问题

4

1 回答 1

2

尝试在https://github.com/rjrudin/ml-app-deployer/blob/master/src/main/java/com/rjrudin/marklogic/rest/util/RestTemplateUtil.java#L18复制 HTTP 身份验证代码- 我知道它将针对端口 8002 上的管理 API 处理 HTTP 基本身份验证,并且它应该在端口 8003 上的 REST API 服务器上正常工作。

于 2015-11-21T16:35:44.467 回答