1С + Android

1. a_alenkin 30.03.16 14:45 Сейчас в теме
Собственно, функционала мобильного приложения оказалось недостаточным для работы.

Поэтому решено написать своего клиента для обращения к существующему веб-сервису с помощью ksoap2-android-assembly-3.4.0-jar-with-dependencies.jar

и так как в jave я не настолько силен - никак не могу вызвать элементарную функцию которая передает с мобильного клиента строку на сервер и ее же возвращает.
Перерыл все поиски.

Скрытый текст


Может кто поможет с проблемой или хотя бы носом тыкнет.
работаю в Андроид Студио - отладку включить не могу - виртуальная машина не позволяет запустить виртуальный эмулятор
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dj_serega 391 30.03.16 16:26 Сейчас в теме
Ждите Ditrix'а. Он тут спец в таких делах :)
3. DitriX 2093 30.03.16 20:35 Сейчас в теме
что то мне подсказывает, что вы возвращаете не xdto пакет, а просто строку.
В этом случае - это не надо:
SoapObject Sresult = (SoapObject)envelope.bodyIn;

result = Sresult.getProperty("result").toString(); 


а просто:
Object  response=  Sresult.getResponse();  
4. a_alenkin 13.12.17 10:41 Сейчас в теме
Попробую поднять тему.
Каким то образом у меня получилось достучаться до web-сервиса 1С.
И возвращаясь к тому проекту теперь у меня ошибка:

expected: START_TAG {http://www.w3.org/2003/05/soap-envelope}Envelope

    @Override
    protected void onPreExecute(){
        super.onPreExecute();
        request = new SoapObject("http://" + ServiceName, MethodName);
        if (MethodName.equals("TestConnection")){
            request.addProperty("usr", "user");
        }
        envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
        envelope.dotNet = true;
        envelope.implicitTypes = true;

        envelope.setOutputSoapObject(request);

        httpTransportSE = new HttpTransportBasicAuthSE("http://"+ServerName+"/"+BaseName+"/ws/"+ServiceName+"/?wsdl", "Admin", "123321");
        httpTransportSE.debug = true;

        SOAP_ACTION = "http://"+ServiceName+"/"+MethodName;
   }

    @Override
    protected Void doInBackground(Void... params){
        try {
            httpTransportSE.call(SOAP_ACTION, envelope);
        } catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
Показать


Код функции в 1С:
Функция TestConnection(usr)
	
	Возврат "ОК";
КонецФункции


Вызов
httpTransportSE.call(SOAP_ACTION, envelope);
вызывает исключение

Из мобильного приложения 1С все проходит отлично
В эмуляторе получается получить описание сервиса в браузере
так же не причем и авторизация - с неправильным логином/паролем идет ошибка "401"
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот