如何使用Android的SOAP?

时间:2012-05-17 00:19:27

标签: android web-services soap

我想使用Android的网络服务。它是由.net framework.url="http://www.deeptraining.com/webservices/weather.asmx"创建的天气Web服务,它未运行。我做错了什么?

package my.Weather.Package;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class WeatherWebServiceActivity extends Activity {
    private static final String NAMESPACE = "http://litwinconsulting.com/webservices/";
    private static final String URL = "http://www.deeptraining.com/webservices/weather.asmx?WSDL";  
    private static final String SOAP_ACTION = "http://litwinconsulting.com/webservices/GetWeather";
    private static final String METHOD_NAME = "GetWeather";

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

        final Button btn_weather = (Button) findViewById(R.id.btnGetWeather);
        final EditText txtCity = (EditText) findViewById(R.id.txtCity);
        final TextView lblWeather=(TextView) findViewById(R.id.lblWeather);

        btn_weather.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);    
                request.addProperty("City","Miami");
                SoapSerializationEnvelope envelope = 
                    new SoapSerializationEnvelope(SoapEnvelope.VER11); 
                envelope.dotNet=true;
                envelope.setOutputSoapObject(request);
                HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

                try 
                {
                    androidHttpTransport.call(SOAP_ACTION, envelope);
                    SoapObject result=(SoapObject)envelope.getResponse();
                    lblWeather.setText(result.getProperty(0).toString());
                } 
                catch (Exception e)
                {

                    lblWeather.setText(e.getMessage());
                }

            }

        });
    }
}

0 个答案:

没有答案