【问题标题】:Getting error when using KSoap library to consume .NET web services使用 KSoap 库使用 .NET Web 服务时出错
【发布时间】:2013-02-15 12:27:53
【问题描述】:

我一直在使用 ksoap 库来使用 .net Web 服务。 我遇到了这种错误

“预期:START_TAG {http://schemas.xmlsoap.org/soap/envelope/}信封(位置:START_TAG @1:7 in java.io.InputStreamReader@40d0c7d8)”

我到处搜索,但找不到任何好的帮助。

这是我尝试使用 Web 服务的代码。

public class WebInvoke {

    private static final String NAMESPACE = "http://tempuri.org/" ;
    private static final String METHOD_NAME = "login";
    private static final String SOAP_ACTION = NAMESPACE + METHOD_NAME;
    private static final String URL = "http://10.0.2.2/Service1.asmx";
    private final SoapSerializationEnvelope envelope;


    public WebInvoke()
    {
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

        PropertyInfo quotesProperty = new PropertyInfo();
        quotesProperty.setName("UserName");
        quotesProperty.setValue("admin");
        quotesProperty.setType(String.class);
        request.addProperty(quotesProperty);

        quotesProperty = new PropertyInfo();
        quotesProperty.setName("Password");
        quotesProperty.setValue("a");
        quotesProperty.setType(String.class);
        request.addProperty(quotesProperty);

        Log.e("Request Assign", request.toString());
        envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);
        Log.e("Envelope Assign", envelope.toString());
    }
    public String Fetch()
    {
        String result = "";
        HttpTransportSE httpRequest = new HttpTransportSE(URL);
        try
        {
            envelope.xsd = SoapSerializationEnvelope.XSD;
            envelope.enc = SoapSerializationEnvelope.ENC;

            httpRequest.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

             Log.e("httpRequest.call", "httpRequest.call");
            httpRequest.call(SOAP_ACTION, envelope);
            SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
            result =  response.toString();
        }
        catch(Exception e)
        {
            //e.printStackTrace();
            Log.e("httpRequest.call Exception", e.getMessage());
        }
        return result;
    }

}

【问题讨论】:

    标签: android ksoap


    【解决方案1】:

    尝试获得更好的代码。你的代码听起来有点笨拙。

    "org.xmlpull.v1.XmlPullParserException: expected: START_TAG" Errorexpected-start-tag-error

    看看这个。

    1. 使用 .netcode 检查您的方法名称和网址

    2. 在 C# appcode 文件中排除 app_html.offline,因为它不允许任何数据库项目运行。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      我也遇到了这个错误。最终,它通过设置这些值得到了修复:

      String SOAP_ACTION = "BookTypeService";
      
      String METHOD_NAME = "bookType";
      
      String NAMESPACE = "http://192.168.1.3:8080/MyWebService/services/";
      
      String URL = "http://192.168.1.3:8080/MyWebService/services/BookTypeService";
      

      其中,192.168.1.3 是我的本地 I/P。

      <wsdl:service name="BookTypeServiceService">
      <wsdl:port name="BookTypeService" binding="impl:BookTypeServiceSoapBinding">
      <wsdlsoap:address location="http://localhost:8080/MyWebService/services/BookTypeService"/>
      </wsdl:port>
      </wsdl:service>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多