Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ksoap2android不兼容xml_Android_Xml_Jax Ws_Android Ksoap2 - Fatal编程技术网

ksoap2android不兼容xml

ksoap2android不兼容xml,android,xml,jax-ws,android-ksoap2,Android,Xml,Jax Ws,Android Ksoap2,我使用ksoap2从Android连接jax-ws-web服务时遇到问题 我试着寻找类似的问题,我发现了很多,但他们的解决方案似乎都不适合我 我的webmethod登录使用两个字符串并输出另一个包含结果的字符串。为了避免任何数据类型/不兼容性/速度问题,我们决定只在web服务中使用字符串 我的jax-ws期望的是什么:根据我的测试页面 <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schem

我使用ksoap2从Android连接jax-ws-web服务时遇到问题

我试着寻找类似的问题,我发现了很多,但他们的解决方案似乎都不适合我

我的webmethod登录使用两个字符串并输出另一个包含结果的字符串。为了避免任何数据类型/不兼容性/速度问题,我们决定只在web服务中使用字符串

我的jax-ws期望的是什么:根据我的测试页面

<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Header/>
    <S:Body>
        <ns2:login xmlns:ns2="http://jrpg.easj/">
            <username>foobar</username>
            <password>pswd2</password>
        </ns2:login>
    </S:Body>
</S:Envelope>
ksoap2吐出的内容:httpTransport.requestDump

<v:Envelope 
    xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:d="http://www.w3.org/2001/XMLSchema" 
    xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
    <v:Header />
    <v:Body>
        <n0:login xmlns:n0="http://jrpg.easj/">
            <n0:username i:type="d:string">foobar</n0:username>
            <n0:password i:type="d:string">pswd2</n0:password>
        </n0:login>
    </v:Body>
</v:Envelope>
在响应中,我可以看到它总是不成功的,即使登录正确。因此web服务不能识别用户名和密码。。。因此,我必须假设这是由于xml格式造成的。或者可能是字符编码的问题,但我更倾向于xml格式的问题

有没有办法改变格式? 顺便说一句。。。有人知道v:代表什么吗? 我猜S:是指肥皂什么的,但是。。。我甚至不知道它们是否有意义

我刚刚跟随了一个toturial,所以有很多代码,其中一些我还没有完全摸索过。。。我不确定是否有任何特定的部分可以方便地回答这个问题。。。因此,我将保持简短,省略java代码。但是,请告诉我您是否需要查看特定的代码


我已将其他应用程序.net/vs、java/netbeans连接到同一web服务。而且这个过程总是那么简单和无痛,任何人都可以做到。。。所以我很沮丧安卓在这方面如此落后和困难。因此,我们非常感谢您的帮助。

我现在可能会找到解决方案。教程说在添加参数时使用此代码

PropertyInfo property = new PropertyInfo();
property.setNamespace(WS_NAMESPACE);
property.setName("username");
property.setValue(username);
request.addProperty(property);
…但是如果没有名称空间行,参数前面的n0:将消失,现在我可以从web方法中获得预期的结果

PropertyInfo property = new PropertyInfo();
//property.setNamespace(WS_NAMESPACE);
property.setName("username");
property.setValue(username);
request.addProperty(property);
ksoap连接仍然会抛出很多错误,但现在至少我可以从web方法中获得正确的结果。这是一个开始