Помогите разобраться с ksoap2 работа с веб-сервисами.

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Vladius
Сообщения: 2
Зарегистрирован: 15 ноя 2012, 23:36

Помогите разобраться с ksoap2 работа с веб-сервисами.

Сообщение Vladius » 04 дек 2013, 11:34

У меня в 1с есть веб сервис, пытаюсь получить к нему доступ. Использую библиотеку ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar

Вот код:

Код: Выделить всё

public class MainActivity extends Activity {
    private static final String SOAP_ACTION = "http://www.sample-package.org#StonesellActivation:activate";
    private static final String METHOD_NAME = "activate";
    private static final String NAMESPACE = "localhost";
    private static final String URL = "http://192.168.1.165/trade/ws/StonesellActivation?wsdl";
    private static final String username = "user";
    private static final String password = "1234";
    
    TextView TextViewServerAnswerText;
    String result;
  
    @Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TextViewServerAnswerText = (TextView) findViewById(R.id.textView1);
		
		Button btn = (Button)findViewById(R.id.button1);
		btn.setOnClickListener(new View.OnClickListener() {		
			@Override
			public void onClick(View v){
				new serviceTask().execute(null, null , null);
			}
		});
    }
    
    class serviceTask extends AsyncTask<Void, Void, Void> {

		@Override
		protected Void doInBackground(Void... arg0) {
			try {
				SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);          
				request.addProperty("username",username);
		                request.addProperty("password",password);
		        
				SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
	                        envelope.setOutputSoapObject(request);

	                        HttpTransportSE ht = new HttpTransportSE(URL); 
	                        ht.debug = true;	            
	                        ht.call(SOAP_ACTION, envelope);
	            
	                        final  SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
	                        result = response.toString();				
			} catch (Exception e) {
				e.printStackTrace();
				result = e.getStackTrace().toString();
			}
			
            return null;
		}
    	
    }
При выполнении этого кода валятся ошибки:
12-04 10:20:41.338: W/System.err(31619): org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <html>@1:7 in java.io.InputStreamReader@42af9dd0)
12-04 10:20:41.338: W/System.err(31619): at org.kxml2.io.KXmlParser.require(KXmlParser.java:2046)
12-04 10:20:41.338: W/System.err(31619): at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:127)
12-04 10:20:41.338: W/System.err(31619): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:195)

Лезу в лог 1с-ки там видно что приложение пыталось получить доступ к веб сервису:
Пользователь: <Неопределен> Событие: Сеанс. Ошибка аутентификации

Пользователя и пароль указал, но походу неправильно, подскажите как правильно настроить аутенфикацию? Или может я вообще неправильно работаю с ksoap2?
В манифесте указал <uses-permission android:name="android.permission.INTERNET"/>.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Помогите разобраться с ksoap2 работа с веб-сервисами.

Сообщение altwin » 11 дек 2013, 23:22

Библиотеку вижу первый раз, но если бегло посмотреть на код - имя пользователя и пароль вы добавляете к запросу, а ваш сервер принимает аутентификацию в таком виде? вы вообще запрос видели? в примерах же(https://code.google.com/p/ksoap2-androi ... sAndTricks) сказано, что для базовой аутентификации есть специальный класс (use the class HttpTransportBasicAuth from the extras package). Даже NTLM аутентификация доступна(use the jar from the ksoap2-extras-ntlm module with the NtlmTransport). Почему используете старую версию, когда доступна 3.1.1...(В общем вопросов больше, чем понимания, хауту есть тут: https://code.google.com/p/ksoap2-android/wiki/HowToUse).
Изображение

Vladius
Сообщения: 2
Зарегистрирован: 15 ноя 2012, 23:36

Re: Помогите разобраться с ksoap2 работа с веб-сервисами.

Сообщение Vladius » 16 дек 2013, 11:55

Вот по этому я и попросил тут помощь. Я не могу понять как работать с аутентификацей в ksoap2. Вся документация на англ.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Помогите разобраться с ksoap2 работа с веб-сервисами.

Сообщение altwin » 16 дек 2013, 18:15

Vladius писал(а):Вот по этому я и попросил тут помощь. Я не могу понять как работать с аутентификацей в ksoap2. Вся документация на англ.
Извиняюсь конечно, не примите мой ответ за грубость, но вам стоит обратиться в агенство переводов...
Изображение

Ответить