2015-05-06 12 views
7

मैं जावा का उपयोग कर शेयरपॉइंट 2013 में आराम एपीआई कॉल कर रहा हूं। मैं जर्सी आराम क्लाइंट का उपयोग कर शेयरपॉइंट 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(); 

कैसे जर्सी ढांचे को यह अपनाने के लिए उपयोग कर रहा हूँ?

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; 
} 

कृपया ध्यान दें कि इस दृष्टिकोण की आवश्यकता है::

+0

कृपया किसी भी कोड है जहाँ आप एक समाधान बनाने के लिए सबूत नहीं है कि आप कुछ शोध किया गया या आप क्या हासिल करने की कोशिश कर रहे हैं के बुनियादी सिद्धांतों को समझने किया है प्रदान का प्रयास किया है की आपूर्ति। लोग जो कुछ करने की कोशिश कर रहे हैं, जो आपने कोशिश की है, जो आपने पढ़ा है, उसके बारे में कुछ और जानने में मदद करने में सक्षम होंगे। आपके पुस्तकालयों और अनुप्रयोग संरचना/ढांचे के संस्करण भी मदद करेंगे। –

+0

@DanielTung मैंने अपना काम जोड़ा है –

उत्तर

2

निम्न कोड एक NTLM प्रमाणीकृत HTTP GET अनुरोध है कि जर्सी का उपयोग कर कार्यान्वित jersey-apache-connector। Maven निर्भरता:

<dependency> 
    <groupId>org.glassfish.jersey.connectors</groupId> 
    <artifactId>jersey-apache-connector</artifactId> 
    <version>2.22.2</version> 
</dependency> 
+2

मैंने सुझाए गए समाधान की कोशिश की लेकिन अगर मैं फॉर्म का एक पोस्ट करता हूं: client.target (...)। अनुरोध()। पोस्ट (...) कोई "प्राधिकरण" हेडर नहीं मिलता है मेरे अनुरोध से जुड़ा हुआ है। क्या मुझसे कुछ गलत हो रही है? – finrod

+0

अभी पता चला है कि क्लासपाथ पर विभिन्न पुस्तकालयों के कौन से संस्करण हैं, इस बारे में सावधान रहना होगा। फिलहाल, एनटीएलएम तोड़ता है अगर मैं टिका (एक असंभव असंबद्ध लाइब्रेरी) पर निर्भर करता हूं जो httpclient-Library पर निर्भर करता है। मेरे मामले में मुझे संदेह है कि "सही" संस्करण क्रमशः निर्भरता-संकल्प द्वारा स्वैप किया गया है। – aioobe

संबंधित मुद्दे