2011-12-06 14 views
5

Mam napisać prostą usługę sieciową RESTful przy użyciu podstawowego uwierzytelniania. Korzystam z porad z tej strony secureRestWS. Stworzyli także film wideo i wysłali go na youtube z dodatkowymi informacjami. Działa dobrze, gdy otworzysz go w przeglądarce. Musisz wpisać nazwę użytkownika i hasło w oknie autoryzacji.Klient Android dla usługi sieciowej REST z podstawowymi zabezpieczeniami

Mam również stronę z klientem Android, która wywołuje usługę WWW odpoczynku przy użyciu httpclient i jeśli usługa sieciowa jest bez uwierzytelniania działa. Używam tego przykładu androidRestWSClient. Ale nie wiem jak dodać nazwę użytkownika i hasło w tym scenariuszu, próbowałem jak:

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

lub w nagłówku:

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

ale nic nie działa. Staram się też tworzyć URL, który powie nazwę użytkownika i hasło usług internetowych takich jak:

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

Naprawdę don`t ma rozwiązanie tego problemu, więc jeśli ktoś ma przykładowy klient chciałbym docenić.

W usługa mam prostą metodę GET

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

muszę używać SecurityContext o nazwę użytkownika i hasło? Czy lepiej stworzyć uwierzytelniania manualy jak w poniższym przykładzie:

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

dzięki za pomoc

Odpowiedz

12

Jeśli używasz tylko podstawowe uwierzytelnianie HTTP, a następnie adres URL powinien wyglądać następująco:

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

Cóż, proszę bardzo - i nie zapomnij o awansie i oznaczyć odpowiedź, jeśli to działa :):

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

więc tworzenie adresu URL działa dla mnie, więc dzięki, może ktoś odpowie na pierwsze pytanie, jak dodać nazwę użytkownika i hasło w kliencie lub po prostu skorzystam z linku w kliencie ... Dziękuję – janilemy

+0

To działa dla mnie dobrze, znalazłem je na inną stronę, ale nie mogę odpowiedzieć na moje własne pytanie w 8 godzin ... Ale teraz wszystko jest w porządku, Dzięki za pomoc Kaediil ... – janilemy

Powiązane problemy