org.xmlpull.v1.xmlpullparserexception使用kso​​ap2时预计会出现start_tag错误

时间:2013-12-26 03:44:39

标签: android

我使用kso​​ap2通过Web服务连接.NET。 这是我的数据集

public DataSet getphimall()
{
    DataSet ds1 = new DataSet();
    try
    {
        SqlConnection cnn = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=EMHAUI;Integrated Security=True");
        SqlCommand cmd = new SqlCommand("sp_GetAllSemester_ad", cnn);
        cmd.CommandType = CommandType.StoredProcedure;
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(ds1);
        return ds1;
    }
    catch (Exception e)
    {
        return null;
    }
}

这是我的网络服务

[WebMethod]
    public DataSet getSM()
    {
        Class1 phim1 = new Class1();

        return phim1.getphimall();
    }

这是我的javaconnector类

public class getSM {
String tenphim;
String daodien;
private static final String SOAP_ACTION = "http://tempuri.org/getSM";
private static final String METHOD_NAME = "getSM";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://10.0.2.2:50532/wsAndroid.asmx";
public getSM getallphim()
{



    SoapObject table = null;                       
    SoapObject client = null;                        
    SoapObject tableRow = null;                        
    SoapObject responseBody = null;                    
    AndroidHttpTransport transport = null;            
    SoapSerializationEnvelope sse = null;
    //cái này trong tut viết thế, mình lười đổi tên


    sse = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    sse.addMapping(NAMESPACE, "getSM", this.getClass());
    sse.dotNet = true; 
    AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);

    getSM setphim = new getSM();
    try 
    {
        client = new SoapObject(NAMESPACE, METHOD_NAME);
        sse.setOutputSoapObject(client);
        sse.bodyOut = client;
        androidHttpTransport.call(SOAP_ACTION, sse);

        responseBody = (SoapObject) sse.getResponse();
        responseBody = (SoapObject) responseBody.getProperty(1);
        table = (SoapObject) responseBody.getProperty(0);
        tableRow = (SoapObject) table.getProperty(0);
        setphim.daodien = tableRow.getProperty("ID").toString();
        setphim.tenphim = tableRow.getProperty("SemesterName").toString();
        return setphim;

    } catch (Exception e) 
    {
        setphim.daodien = e.toString();
        setphim.tenphim = e.toString();
        return setphim;
    }

}}

但是当我运行我的模拟器时,我有一个错误 org.xmlpull.v1.xmlpullparserexception期望start_tag错误 请帮我!感谢

1 个答案:

答案 0 :(得分:2)

您可能会遇到异常的原因。

  1. SOAP调用的参数错误:通过查看WSDL文件,尝试确认NAMESPACE,ACTION,METHOD和URL的值是否正确
  2. 来自服务器的响应无效:尝试记录服务器发送给您的响应,并检查您是否获得了结构良好的XML格式

    androidHttpTransport.debug = true;

    //执行请求

    androidHttpTransport.responseDump; //来自服务器的响应字符串

  3. 信封的
  4. dotNet属性:尝试使用 soapEnvelope.dotNet=true