過去2日間に約10時間を費やしていますが、これを理解しようとするとまだ動作しません。私はVS2010でWCFサービスを作って、IISでホストしています。イムは、AndroidプロジェクトにJavaでサービスを呼び出すしようとしているが、私はこのエラーここksoap2 androidが.NET WCF Webサービスを使用していますXMLPullParserError助けてください
org.xmlpull.v1.XmlPullParserException: unexpected type (position:END_DOCUMENT [email protected]:0 in [email protected])
を得続けることは私のコードです:
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();
}
}
}
、ここで私のWebサービス用のコードです:
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)や他のウェブサイトを試みました。私はVisual StudioのASPホストとIISでサービスをホストしてみました。私は外部IPアドレスでも、結果なしでそれを呼び出すことを試みました。
サービス(バインディング)をどのようにホストしていますか? WSDLに従って正しいSOAPアクション名前空間などを使用しましたか? .NETクライアントから正常に呼び出すことはできますか? –
.NETから呼び出すと正常に動作します。これはIISでホストされています。私は実際にこれから移動し、MVCアプリケーションに組み込まれているRESTサービスを使用することに決めましたが、もし私に役立つものがあれば教えてください。 –