Попытка получить любой ответ при подключении с Android к моему веб-сервису (SOAP 1.1) - PullRequest
0 голосов
/ 30 ноября 2010

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

    public class Main extends Activity {
    /** Called when the activity is first created. */

 private static final String SOAP_ACTION="http://tempuri.org/getme/TSM/LogOn";
 private static final String METHOD_NAME="LogOn";
 private static final String NAMESPACE="http://tempuri.org/getme/TSM/";
 private static final String URL="http://theking/eget/WebService/WSAuth.asmx";

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView tv = (TextView) findViewById(R.id.TextView01);

        SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
        Request.addProperty("strUsername", "Test");
        Request.addProperty("strPassword", "Test123");
        Request.addProperty("strMessage", "hello");

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

        AndroidHttpTransport aht = new AndroidHttpTransport(URL);
        try
        {
         aht.call(SOAP_ACTION, soapEnvelope);
         SoapObject response = (SoapObject)soapEnvelope.getResponse();
            String LogonResult =  response.getProperty(0).toString();
            String MessageResult =  response.getProperty(1).toString();
         tv.setText("Status : " + LogonResult + " Message: " + MessageResult);
        }
        catch(Exception e)
        {
         e.printStackTrace();
        }

    } }

Я думаю, что он сломается до тега TRY ... все, что я получаю на виртуальном экране, это: false.Любые решения .. я не знаю, где проблема?

Ниже приведен пример запроса и ответа SOAP.

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <LogOn xmlns="http://tempuri.org/getme/TSM">
      <strUsername>string</strUsername>
      <strPassword>string</strPassword>
      <strMessage>string</strMessage>
    </LogOn>
  </soap:Body>
</soap:Envelope>

    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <LogOnResponse xmlns="http://tempuri.org/getme/TSM">
      <LogOnResult>int</LogOnResult>
      <strMessage>string</strMessage>
    </LogOnResponse>
  </soap:Body>
</soap:Envelope>

Ответы [ 2 ]

1 голос
/ 20 мая 2011

У меня была такая же проблема, я просто добавил это разрешение в AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

Вот так :) 1004 *

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

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

Также попробуйте вставить URL-адрес в браузер и посмотреть, верен ли он.

Также установите точку останова или войдите в файл, чтобы определить, будет ли вызываться служба.

...