我从 Android 连接到 jax-ws Web 服务时遇到问题(使用 ksoap2)。
我曾尝试寻找类似的问题,并且发现了很多问题,但他们的解决方案似乎都不适合我。
我的网络方法login
接受两个字符串并输出另一个包含结果的字符串。(为了避免任何数据类型/不兼容/速度问题,我们决定只在 Web 服务中使用字符串)
我的 jax-ws 期待什么:(根据我的 ?Tester 页面)
<?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: 是肥皂之类的,但是......好吧,我什至不知道它们中的任何一个是否重要......
我刚刚遵循了一个教程,所以有很多代码,其中一些我还没有完全理解......而且我不确定是否有任何特定的部分可以方便地回答这个问题...所以我将保持简短并省略 Java 代码。但是,如果您需要查看特定的代码,请告诉我。
我已将其他应用程序(.net/vs、java/netbeans)连接到同一个 Web 服务。而且这个过程总是那么轻松简单,任何人都可以做到……所以让我感到沮丧的是,Android 必须如此落后和困难。因此,非常感谢任何帮助。