Запрос не прошел с аутентификацией в ksoap2 - PullRequest
0 голосов
/ 29 ноября 2018

У меня проблема с аутентификацией при подключении к веб-сервису.Когда я попытался открыть его через веб-браузер, он попросил меня войти с помощью «логина» и «пароля».Я использую приведенный ниже код для аутентификации, но он не работает.Я получаю 401. Я перепробовал все, что нашел, но все равно не могу подключиться.

String res = "sample string";
        SoapObject request = new SoapObject(NAMESPACE, METHODNAME);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(WSDL);

        List<HeaderProperty> headers = new ArrayList<HeaderProperty>();
        headers.add(new HeaderProperty("Authorization", "Basic " + org.kobjects.base64.Base64.encode("my_username:my_password".getBytes())));

        androidHttpTransport.debug = true;


        try {

            androidHttpTransport.call(SOAP_ACTION, envelope, headers);
            SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
            res = resultsRequestSOAP.toString();


            System.out.println("Response: " + resultsRequestSOAP.toString());

        } catch (Exception e) {  //here comes org.ksoap2.transport.HttpResponseException: HTTP request failed, HTTP status: 401
            Log.d(TAG, e.getMessage());
        }
        return res;

1 Ответ

0 голосов
/ 30 ноября 2018

Если кто-то наблюдает за этим вопросом, я смог получить логи с сервера, и вот что я получил:

2018-11-30 13:13:36 YY.YY.YY.YY POST /MicrosoftDynamicsAXAif50/servicee.svc - 89 - XX.XX.XX.XX ksoap2-android/2.6.0+ - 401 2 5 15

YY - адрес сервера, XX - мой
До моегоадрес должен быть моим именем пользователя, и не должно быть имени lib, как вы можете видеть.Как я могу заставить это работать?Потому что я всегда получаю отказ от сервера с этим.

...