2013-10-03 3 views
2

Я в середине понимания программирования Android в частности, и я просто хочу создать простой POC о том, как вызвать веб-службу на основе SOAP из приложения Android.Как пройти аутентификацию в webservice с помощью библиотеки Android KSOAP

На основании моих показаний, я использовал эту библиотеку KSOAP2

я не сделал серьезное кодирование еще, но я просто хотел бы знать, как реализовать аутентификацию с помощью этой библиотеки.

В примерах, которые я видел в сети, почти все из них не имеют механизма аутентификации. Если мой веб-сервис требует аутентификации, такой как userid/password, то как я могу передать его, используя эту библиотеку.

Просто хотел бы начать с начала. Спасибо

+0

Вы когда-нибудь выяснить библиотеку ksoap? – ksudu94

ответ

0

Что касается второй части ваших вопросов, то мой веб-сервис находится в vb.net и требует имени пользователя и пароля, поэтому у меня есть веб-метод, который обрабатывает это. Это сторона андроида, которая ее обрабатывает ... Существует также адаптер, но я позволил вам получить эту часть.

public Account getAccountFromWebservice() { 

    SOAP_ACTION = "getAccount"; 
    METHOD_NAME = "getAccount"; 

    SoapObject Request = new SoapObject(Data.NAMESPACE, METHOD_NAME); 

    String username = "name"; 
    String password = "something"; 



    PropertyInfo username = new PropertyInfo(); 
    username .setName("username "); 
    username .setValue(username); 
    Request.addProperty(username); 



    PropertyInfo password = new PropertyInfo(); 
    password.setName("password "); 
    password.setValue(password); 
    Request.addProperty(password); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
      SoapEnvelope.VER11); 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(Request); 

    HttpTransportSE HttpTransport = new HttpTransportSE(Data.URL); 

    try { 
     HttpTransport.call(SOAP_ACTION, envelope); 
     SoapObject response = (SoapObject) envelope.getResponse(); 

     for (int i = 0; i < response.getPropertyCount(); i++) { 
      account.setProperty(i, response.getProperty(i).toString()); 

     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return account; 

} 

и здесь является частью .net метода webervice

 public Accounts[] getAccounts(String username, String password) 
    { 
     strSQL = "dbo.danceworks_getAccounts"; 
     SqlParameter[] sp = new SqlParameter[2]; 
     sp[0] = new SqlParameter("@username", username); 
     sp[1] = new SqlParameter("@password", password); 



     DatabaseCore dc = new DatabaseCore(); 

     DataSet ds = new DataSet(); 
     ds = dc.ExecSPReturnDS(strSQL, sp); 

     Accounts[] account= new Accounts[ds.Tables[0].Rows.Count]; 
     int i; 
     for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++) 
     { 
      account[i] = new Accounts(); 
      Accounts[i].add the various fields for an account object 
     } 

     return Classes; 
    } 

Надежда, что помогает

+0

Привет ... Из какого класса вы получили учетную запись, от Ksoap2? Но нет класса с именем Account от Ksoap2 – Arun

+1

Это класс, который я сделал. в моем веб-сервисе у меня есть класс учетной записи с полями данных, такими как идентификаторы учетной записи или ученики. Итак, на стороне Android я создал класс учетной записи, и у меня были все переменные, которые у меня были в классе учетной записи на стороне веб-службы – ksudu94

Смежные вопросы