在android中访问C#.net web服务
如何使用android使用.net web服务 我的代码是这样的在android中访问C#.net web服务,c#,android,web-services,C#,Android,Web Services,如何使用android使用.net web服务 我的代码是这样的 package Webservices.pck; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import andro
package Webservices.pck;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.widget.TextView;
import android.app.Activity;
import android.os.Bundle;
public class Webservices extends Activity
{
private static final String SOAP_ACTION = "http://tempuri.org/HelloWorld";
private static final String METHOD_NAME = "HelloWorld";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://ipaddress/Service1.asmx";
//private Object resultRequestSOAP = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
try
{
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
envelope.dotNet = true;
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject resultRequestSOAP = (SoapObject)envelope.bodyIn;
String result = (String)resultRequestSOAP.getProperty(0).toString();
tv.setText(result);
this.setContentView(tv);
}
catch (Exception aE)
{
tv.setText(aE.toString());
this.setContentView(tv);
}
}
}
在我使用的代码中
String URL = "http://ipaddress/Service1.asmx";
然后出现错误:--
org.xmlpull.v1.xmlPullParserException:预期为:开始标记{http://schemas.xmlsoap.org/soap/envelope/}信封(位置:开始_TAG@1:6在java.io中。InputStreamReader@4375fda8)
您访问的是html页面,而不是SOAP服务。解析器异常已经告诉您出了什么问题
你有这样的数据吗
<html><body>... </body></html>
。。。
而页面应该返回如下内容
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<YourFunctionToCall... />
</soapenv:Body>
</soapenv:Envelope>
可能您的URL中有输入错误,或某种身份验证或其他类型的错误,因此它返回了一个HTML错误,而不是Soap请求/响应。您正在访问一个HTML页面,而不是Soap服务。解析器异常已经告诉您出了什么问题 你有这样的数据吗
<html><body>... </body></html>
。。。
而页面应该返回如下内容
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<YourFunctionToCall... />
</soapenv:Body>
</soapenv:Envelope>
可能您的URL中有输入错误,或者某种身份验证或其他类型的错误,因此它返回了一个HTML错误,而不是Soap请求/响应