我正在使用Java对Sharepoint 2013进行休息api调用。如何使用泽西休息客户端连接到sharepoint 2013?
注意:目前我正在使用apache http组件和NTCredentials
类
Credentials credentials=new NTCredentials(username, password, workstation, domain);
AuthScope authScope=new AuthScope(AuthScope.ANY);
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(authScope,credentials);
CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
如何将此方法应用于Jersey框架?
答案 0 :(得分:2)
以下代码使用Jersey执行NTLM经过身份验证的HTTP GET请求:
public Response executeRestGet(String user, String pass) {
Client client = ClientBuilder.newClient(prepareClientConfig(user, pass));
WebTarget target = client.target("http://localhost/").path("site/_api/xxxxx");
return target.request(HTTP_ACCEPT_JSON).get();
}
private ClientConfig prepareClientConfig(String user, String pass) {
ClientConfig clientConfig = new ClientConfig();
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
//make sure to supply all 4 arguments to the NTCredentials constructor
credentialsProvider.setCredentials(AuthScope.ANY, new NTCredentials(user, pass, null, null));
clientConfig.property(ApacheClientProperties.CREDENTIALS_PROVIDER, credentialsProvider);
clientConfig.connectorProvider(new ApacheConnectorProvider());
return clientConfig;
}
请注意,此方法需要:jersey-apache-connector
。 Maven依赖:
<dependency>
<groupId>org.glassfish.jersey.connectors</groupId>
<artifactId>jersey-apache-connector</artifactId>
<version>2.22.2</version>
</dependency>