Нужна помощь в написании синтаксиса в android - PullRequest
0 голосов
/ 07 апреля 2011

Я столкнулся с некоторыми проблемами в Android, поскольку я новичок в этом. Мне нужно знать, как написать синтаксис в Android для следующей проблемы.

Проблема: У меня есть веб-сервис .net (www.somesite.com). Этот веб-сервер имеет метод аутентификации, который требует имени пользователя и пароля в качестве параметра для аутентификации. Как только я установлю эти вещи, используя метод аутентификации, это позволит мне вызвать остальную часть функциональности, присутствующей в веб-сервере. У меня есть исходный код, написанный на ASP. Я хочу написать тот же код в Android.

 private MyServerAPI.Service _service;
 _service = new MyServerAPI.Service();

MyServerAPI.DTAuthHeader auth = new MyServerAPI.DTAuthHeader();
auth.Username = ConfigurationManager.AppSettings["MyServerAPI.user"];
auth.Password = ConfigurationManager.AppSettings["MyServerAPI.pass"];

_service.DTAuthHeaderValue = auth;
_service.Url = ConfigurationManager.AppSettings["MyServerAPI.service"];

По сути, я хочу написать то же самое, что и код выше в Android.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2011

Если вы не хотите зависеть от сторонней библиотеки, тогда вы также можете использовать встроенный класс android.

Вот функция, которая используется для публикации данных на вашем веб-сервере вместе с передачей имени пользователя и пароля..

public void postDataToWeb() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("www.yoursite.com");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("Username", "Paresh"));
        nameValuePairs.add(new BasicNameValuePair("Password", "PM@Android"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
    InputStream is = entity.getContent();

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
} 

Теперь у вас есть отклик во входном потоке (в приведенном выше примере «is»), и вы можете играть с inputtream.

0 голосов
/ 07 апреля 2011

Есть библиотека для работы с WebServices под названием KSOAP2. найди его здесь

Используйте его и обратите внимание, как ваш сервер запрашивает имя пользователя и пароль для отправки.

UPDATE
Фрагмент кода:

SoapObject soapRequest = new SoapObject(WSDL_TARGET_NAMESPACE, OPERATION_NAME) ;
    soapRequest.addProperty("appName","MyCoolApp" );
    soapRequest.addProperty("sEmail","test@example.com" );
    soapRequest.addProperty("sPassword","test" );
    SoapSerializationEnvelope soapEnvelope = new     SoapSerializationEnvelope(SoapEnvelope.VER11);
    soapEnvelope.dotNet  = true;
    soapEnvelope.setOutputSoapObject(soapRequest);

    HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);

    try{
    httpTransport.call(SOAP_ACTION, soapEnvelope);
    Object response = soapEnvelope.getResponse();
    Log.d("-----RESPONSE",""+response);
    }catch (Exception exception){
    Log.d("RESPONSE",""+exception.toString());
    }

Хотя я не рекомендую публиковать здесь весь код, но, поскольку вы, похоже, испытываете серьезные проблемы, надеюсь, это очень вам поможет.

Или немного подожду, я подробно об этом напишу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...