2011-12-06 59 views
5

我寫使用基本authentication.I使用提示從secureRestWS這個頁面的簡單RESTful Web服務REST Web服務。他們還製作了一段視頻並在YouTube上發佈了更多詳情。它在瀏覽器中打開時工作得很好。您需要在授權窗口中編寫用戶名和密碼。Android客戶端與基本安全

我也發現了Android客戶端,使用的HttpClient如果Web服務是無需驗證它的工作原理調用REST Web服務的頁面。我正在使用此示例androidRestWSClient。但我不`噸知道如何添加用戶名和密碼在這種情況下,我想這樣的:

client.AddParam("User Name", "myusername"); 
client.AddParam("Password", "mypassword"); 

或標題:

client.AddHeader("User Name", "myusername"); 
client.AddHeader("Password", "mypassword"); 

但沒有任何工程。我也嘗試創建網址,告訴像Web服務的用戶名和密碼:

http://192.168.1.42/RestWS/resources/helloWorld?username=myusername&password=mypassword 

我真的不有一個解決方案,所以如果有人有一個例子客戶我會理解。

在web服務我有簡單的GET方法

@GET 
@Path("/text") 
public String getText() { 
    return "Hello World!"; 
} 

我需要使用SecurityContext的用戶名和密碼?它是更好地創建認證manualy就像這個例子:如果您只使用基本的HTTP認證

http://aruld.info/accessing-restful-services-configured-with-ssl-using-resttemplate/ 

感謝您的幫助

回答

12

,那麼URL應該是這樣的:

http://username:[email protected]/RestWS/resources/helloWorld 

那麼,在這裏你去 - 並且不要忘記Upvote和標記爲答案,如果這工作:):

HttpGet httpget; 
try{ 
    httpget = new HttpGet(url); 

    String auth =new String(Base64.encode((username + ":" + password).getBytes(),Base64.URL_SAFE|Base64.NO_WRAP)); 
    httpget.addHeader("Authorization", "Basic " + auth); 
    } 
+0

For創建網址這對我有用,所以謝謝,也許有人會回答第一個問題如何在客戶端添加用戶名和密碼,或者我只是在客戶端使用鏈接...謝謝 – janilemy

+0

這對我來說很好,我發現它其他頁面,但不能在8小時內回答我自己的問題...但現在一切都很好,感謝您的幫助Kaediil ... – janilemy