2015-05-18 2 views
0

Я пытаюсь соединить мой андроид устройства с простой C# веб-службы, но я получаю эту ошибкуОшибка при подключении андроид устройства с C# веб-службы

org.xmlpull.v1.XmlpullparserException: ожидаемое START_TAG {http://schemas.xmlsoap.org/soap/envelope/ } Envelope (позиция: START_TAG @ 2: 7 в [email protected])

это мой код:

package com.example.khalifa_.webservice; 
import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.PropertyInfo; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.StrictMode; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class MainActivity extends Activity 
{ 
    /** Called when the activity is first created. */ 
    private static final String SOAP_ACTION = "http://tempuri.org/findContact"; 

    private static final String OPERATION_NAME = "findContact";// your webservice web method name 

    private static final String WSDL_TARGET_NAMESPACE = "http://tempuri.org/"; 

    private static final String SOAP_ADDRESS = "http://192.168.1.3:29824/Service.asmx"; 
// for the SOAP_ADDRESS, run your web service & see 
//your web service Url :1506/WebSite3/Service.asmx ,1052 will be change according to your PC 

    TextView tvData1; 
    EditText edata; 
    Button button; 
    String studentNo; 
//http://localhost:1827/WebSite1/Service.asmx/HelloWorld 

    //http://10.0.2.2:1827/WebSite1/Service.asmx 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
     StrictMode.setThreadPolicy(policy); 
     tvData1 = (TextView)findViewById(R.id.textView1); 

     button=(Button)findViewById(R.id.button1); 

     button.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,  OPERATION_NAME); 
       PropertyInfo propertyInfo = new PropertyInfo(); 
       propertyInfo.type = PropertyInfo.STRING_CLASS; 
       propertyInfo.name = "eid"; 

       edata =(EditText)findViewById(R.id.editText1); 
       studentNo=edata.getText().toString(); 

       request.addProperty(propertyInfo, studentNo); 

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

       envelope.setOutputSoapObject(request); 

       HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); 

       try { 
        httpTransport.call(SOAP_ACTION, envelope); 
        Object response = envelope.getResponse(); 
        tvData1.setText(response.toString()); 
       } catch (Exception exception) { 
        tvData1.setText(exception.toString()+" Or enter number  is not Available!"); 
       } 

       tvData1 = (TextView)findViewById(R.id.textView1); 
      } 
     }); 

     //client = new DefaultHttpClient(); 
     //new Read().execute("text"); 
    } 
} 
+0

Опишите, что еще вы пробовали, пожалуйста. Это ваша первая попытка? –

+0

нужен мой код веб-службы? –

+0

@FilipMalczak? –

ответ

1

Вы должны написать код в фоновом потоке. используйте asynctask для фонового потока. Для получения дополнительной информации refer this.

+1

Было бы здорово, если бы вы оставили ссылку, чтобы ваш ответ был более полезным , – Tony

+0

проверить следующую ссылку http://programmerguru.com/android-tutorial/how-to-call-asp-net-web-service-in-android/ – user2780774