За последние 2 дня я потратил около 10 часов, пытаясь выяснить это, и до сих пор не могу заставить его работать. я сделал службу WCF в VS2010, и у меня она размещена в IIS. Я пытаюсь вызвать службу в Java в проекте Android, но получаю эту ошибку
org.xmlpull.v1.XmlPullParserException: unexpected type (position:END_DOCUMENT null@1:0 in java.io.InputStreamReader@4052b038)
вот мой код:
package asdd.sd;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.os.Bundle;
public class AsdasdActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String nameSpace = "http://findmydroid.com/";
String methodName = "GetData";
String soapAction = "http://findmydroid.com/GetData";
String url = "http://10.0.2.2/FindMyDroid/Service1.svc";
SoapObject soapObject = new SoapObject(nameSpace, methodName);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
envelope.dotNet = true;
envelope.setOutputSoapObject(soapObject);
HttpTransportSE transport = new HttpTransportSE(url);
PropertyInfo pi = new PropertyInfo();
pi.setName("value");
pi.setValue(55);
soapObject.addProperty(pi);
try
{
transport.call(soapAction, envelope);
String dump = transport.requestDump;
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
boolean result = Boolean.parseBoolean(response.toString());
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
и вот код для моего веб-сервиса:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace FindMyDroid.WCF
{
[ServiceContract(Namespace = "http://findmydroid.com/")]
public interface IService1
{
[OperationContract]
string GetData(int value);
// TODO: Add your service operations here
}
}
Here is the Service1 Class
namespace FindMyDroid.WCF
{
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
}
}
Все, что я хочу сделать, это просто протестировать службу, чтобы я знал, что могу подключиться к ней с помощью Java, если кто-нибудь может помочь мне с этой ошибкой. Я пробовал так много разных примеров отсюда (Stackoverflow) и других сайтов. Я попытался разместить службу в ASP хосте Visual Studio и IIS. Я также попытался позвонить с помощью внешнего IP-адреса, но безрезультатно.