2012-04-16 52 views
0

我想通過https在Android上調用我的RESTful WCF服務。每當我打電話時,我都會收到401:未經授權的錯誤。我的代碼的其他部分工作,我本地測試它。從Android通過https調用WCF使用憑據

下面是相關代碼:

// http scheme 
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); 
// https scheme 
schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443)); 

credentialsProvider = new BasicCredentialsProvider(); 
credentialsProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), 
      new UsernamePasswordCredentials("user", "pass")); 
clientConnectionManager = new ThreadSafeClientConnManager(params, schemeRegistry); 

context = new BasicHttpContext(); 
context.setAttribute("http.auth.credentials-provider", credentialsProvider); 

HttpGet request = new HttpGet(SERVICE_URI + URL1 + EID); 
request.setHeader("Accept", "application/json"); 
request.setHeader("Content-type", "application/json"); 

DefaultHttpClient client = new DefaultHttpClient(clientConnectionManager, params); 
client.setCredentialsProvider(credentialsProvider); 
HttpResponse response = client.execute(request, context); 

HttpEntity responseEntity = response.getEntity(); 

EasySSLSocketFactory使用X509TrustManager的實現。我知道代碼也適用。有人可以提供一些建議。我沒有發現任何工作正常。

回答