Проблема с веб-сервисом Android - PullRequest
0 голосов
/ 29 апреля 2011
package com.demowold;

import android.app.Activity;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE; 

public class DemoWold extends Activity {

private EditText etUserName;
private TextView lblResult;
/** Called when the activity is first created. */

private static final String NAMESPACE = "http://tempuri.org";
private static final String METHOD_NAME = "Hello";
private static final String SOAP_ACTION = "Hello";
private static final String URL = "http://ip/foldername/UserAuthenticationService.svc?wsdl";


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


    lblResult = (TextView) findViewById(R.id.lblmsg);
    etUserName = (EditText)findViewById(R.id.etUserName); 

       call();

}

public void call()
{
        try {

        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);



        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet=true;
        envelope.setOutputSoapObject(request);

        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        androidHttpTransport.debug =true;
        try
        {
            androidHttpTransport.call(SOAP_ACTION, envelope);
            lblResult.setText(envelope.getResponse().toString());
        }
        catch(org.xmlpull.v1.XmlPullParserException ex2)
        {      
            lblResult.setText(androidHttpTransport.requestDump.toString());         
            System.out.println(androidHttpTransport.requestDump.toString());

        }     

            } catch (Exception e) {

        lblResult.setText(e.toString());
    }
}
}

Я получаю ошибку:

org.xmlpull.v1.XmlPullParserException: unexpected type 
    (position:END_DOCUMENT null@1:0 in java.io.InputStreamReader@44c25e10)  

, пожалуйста, помогите мне.что не так в коде

Ответы [ 2 ]

0 голосов
/ 13 мая 2011

METHOD_NAME и SOAP_ACTION не должны совпадать.Предполагается, что SOAP_ACTION представляет собой объединение пространства имен и имени метода.В вашем случае это будет "http://tempuri.org/Hello". Кроме того, и это важно, поставьте косую черту в конце NAMESPACE. К сожалению, это распространенная проблема для начинающих ksoap2.

Полученная ошибка неправда, похоже, с ними связаны.

Где вы установили точку останова при проверке responseDump?

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

Я думаю, что ваш URL: http://ip/foldername/UserAuthenticationService.svc?wsdl может быть проблема.Попробуйте http://ip/foldername/UserAuthenticationService.svc (предположим, что ip и foldername будут заменены реальными!)

Если это не сработает, не могли бы вы опубликовать, что в androidHttpTransport.responseDump после запроса?

...