Как вызвать Dot Net Webservice из Android-активности с помощью KSOAP

I want to invoke my live webservice on android activity and i am using Ksoap technique ,I have made activity are as follows;

Webservice live on server as -'http://scoolbag.somee.com/service.asmx'
Method Name- 'TalkTalk'
Working EmpId- 837382

I have made two java files out of which one is activity java file and by other i am calling my webservice.
namely 'Webservice.java' for ANDROID ACTIVITY
'WebserviceCall.java'for CALLING WEBSERVICE
==================================================================

Теперь я буду вести к своему разделу кода, я выполнил действие с именем 'webservice.java'

Активность Android

public class webservice extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_webservice);
        final Button webserviceCallButton = (Button) findViewById(R.id.btnInvoke);
        final EditText webserviceResponse = (EditText) findViewById(R.id.editEID);

        webserviceCallButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                Toast.makeText(getApplicationContext(),"Requesting to server",
                        Toast.LENGTH_LONG).show();

                //Create Webservice class object
                WebserviceCall com = new WebserviceCall();

                // Initialize variables
                String Eid= webserviceResponse.getText().toString();


                //Call Webservice class method and pass values and get response
                String aResponse = com.getTalkTalk(Eid);

                //Alert message to show webservice response
                Toast.makeText(getApplicationContext(), Eid+" User= "+aResponse+" Name",
                        Toast.LENGTH_LONG).show();

                Log.i("AndroidExampleOutput", "----"+aResponse);

                webserviceResponse.setText("Response : "+aResponse);
            }
        });

    }}

Теперь я покажу вам код, по которому я звоню веб-сервису, и буду помнить, что вы вставили файл Ksaop Jar с зависимостью в папку library. Пожалуйста, посмотрите ниже упомянутый код.

WebserviceCall.java

public class WebserviceCall {
String namespace = "http://www.niceald.in/";
    private String url = "http://scoolbag.somee.com/service.asmx";

    String SOAP_ACTION;
SoapObject request = null, objMessages = null;
SoapSerializationEnvelope envelope;
AndroidHttpTransport androidHttpTransport;

WebserviceCall() {
}


/**
 * Set Envelope
 */
protected void SetEnvelope() {

    try {

        // Creating SOAP envelope
        envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

        //You can comment that line if your web service is not .NET one.
        envelope.dotNet = true;

        envelope.setOutputSoapObject(request);
        androidHttpTransport = new AndroidHttpTransport(url);
        androidHttpTransport.debug = true;

    } catch (Exception e) {
        System.out.println("Soap Exception---->>>" + e.toString());
    }
}

// MethodName variable is define for which webservice function  will call
public String getTalkTalk(String EMPid)
{

    try {
        SOAP_ACTION = namespace + EMPid;

        //Adding values to request object
        request = new SoapObject(namespace, EMPid);

        //Adding Double value to request object
        // PropertyInfo weightProp =new PropertyInfo();



        SetEnvelope();

        try {

            //SOAP calling webservice
            androidHttpTransport.call(SOAP_ACTION, envelope);

            //Got Webservice response
            String result = envelope.getResponse().toString();

            return result;

        } catch (Exception e) {
            // TODO: handle exception
            return e.toString();
        }
    } catch (Exception e) {
        // TODO: handle exception
        return e.toString();
    }

}}

Я получаю исключение NetworkonMainThread. Пожалуйста, просмотрите мой код и помогите с альтернативой. Лучший способ - использовать мой веб-сервис и предоставить свой код в качестве ответа.

'Заранее спасибо'

1 ответ

Я думаю, что у вас есть проблемы с вашим конвертом, что вы делаете. Пожалуйста, проверьте эту ссылку, веб-сервисы Android Ksoap2 asmx и выполните все шаги. Ниже приведено описание того, что ksoap использует для передачи оболочки, которая является HttpTransportSE. Пожалуйста, используйте это, как это,

SoapObject soapObject = new SoapObject(NAMESPACE, METHOD_NAME);
soapObject.addProperty("Celsius","12");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(soapObject);
HttpTransportSE httpTransportSE = new HttpTransportSE(URL);
httpTransportSE.call(SOAP_ACTION, envelope);
SoapPrimitive soapPrimitive = (SoapPrimitive)envelope.getResponse();
Log.d("TAG", "doInBackground: "+soapPrimitive.toString());
return soapObject.toString();
Другие вопросы по тегам