2017-02-19 9 views
1

私はrestfull Webサービス用のTomcat7、Sprngフレームワークを使用しています。私は、Spring RestTemplateを使用して基本認証を持つhttp Webサービスを呼び出そうとしています。Spring RestTemplateを使用して基本認証を持つRestfull Webサービスを呼び出す方法

私はそれを動作させることができませんでした。誰でも私はそれが基本的な認証を持っているhttp restfull Webサービスを呼び出すことができるように変更する必要があります下のコードに基づいて教えてください..誰も私に教えたり、pom.xmlファイルを提供するJavaライブラリ私は必要でしょうか?

DefaultHttpClient httpClient = new DefaultHttpClient(); 
    BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider(); 
    credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(user, password); 
    httpClient.setCredentialsProvider(credentialsProvider); 
    ClientHttpRequestFactory rf = new HttpComponentsClientHttpRequestFactory(httpClient); 

    template = new RestTemplate(rf); 

春の自動管理:最も単純な形式で

import org.springframework.web.client.RestTemplate; 

import com.fasterxml.jackson.core.JsonGenerationException; 
import com.fasterxml.jackson.databind.JsonMappingException; 
import com.fasterxml.jackson.databind.ObjectMapper; 
import com.journaldev.spring.controller.EmpRestURIConstants; 
import com.journaldev.spring.model.CostControlPost; 
import com.journaldev.spring.model.Employee; 
import com.journaldev.spring.model.RfxForUpdate; 

import static org.junit.Assert.*; 
import org.apache.commons.codec.binary.Base64; 

import javax.net.ssl.*; 
import java.io.*; 
import java.security.KeyStore; 
import java.security.MessageDigest; 
import java.security.cert.CertificateException; 
import java.security.cert.X509Certificate; 


public class TestExample2 { 

    public static final String SERVER_LIST="http://abc/sourcing/testServices"; 


    @Test 
    public void testGetListOfServiceNames() 
    { 
     try 
     {    
      RestTemplate restTemplate = new RestTemplate(); 
      ResponseEntity<String> response = restTemplate.exchange(SERVER_LIST,HttpMethod.GET,null,String.class); 
      assertNotNull(response);  
     } 
     catch(Exception e) 
     { 
      System.out.println("e:"+e.getMessage()); 
     } 
    }     
} 

答えて

1

RestTemplateのためのHTTPコンテキストを作成します。

private HttpContext createHttpContext() { 
     AuthCache authCache = new BasicAuthCache(); 

     BasicScheme basicAuth = new BasicScheme(); 
     authCache.put(host, basicAuth); 

     BasicHttpContext localcontext = new BasicHttpContext(); 
     localcontext.setAttribute(HttpClientContext.AUTH_CACHE, authCache); 
     return localcontext; 
    } 

はインターセプタを追加します。

restTemplate.getInterceptors().add(
    new BasicAuthorizationInterceptor("username", "password")); 

コール:

restTemplate.exchange(
    "http://abc/sourcing/testServices", 
    HttpMethod.GET, null, String.class); 

this記事を参照してください。

関連する問題