2

我一直在使用 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;
    }

}
4

2 回答 2

1

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

“org.xmlpull.v1.XmlPullParserException:预期:START_TAG”错误 预期-开始-标签-错误

查一下这个。

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

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

希望它可以帮助你。

于 2013-02-16T07:41:51.897 回答
0

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

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>
于 2016-02-29T01:41:59.217 回答