3

ksoap2(Androidバージョン)によって生成されたエンベロープに属性(xmlns:n0 = "urn:checkOTP")を追加する必要があります。

<v:Envelope
  xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:d="http://www.w3.org/2001/XMLSchema"
  xmlns:c="http://www.w3.org/2003/05/soap-encoding"
  xmlns:v="http://www.w3.org/2003/05/soap-envelope">
  <v:Header>
  ...
</v:Envelope>

に向ける

<v:Envelope
  xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:d="http://www.w3.org/2001/XMLSchema"
  xmlns:c="http://www.w3.org/2003/05/soap-encoding"
  xmlns:v="http://www.w3.org/2003/05/soap-envelope"
  xmlns:n0="urn:checkOTP">
  <v:Header>
   ...
  </v:Envelope>

エラーコードは次のとおりです。

W/System.err(858): Code: SOAP-ENV:Sender, Reason: Method 'checkOtp' not implemented: method name or namespace not recognized

サーバーはgSOAP2サーバーであり、ヘッダーに「xmlns:n0 = "urn:checkOTP」が追加されている場合は完全に機能します(javascriptでテスト済み)。

よろしくお願いします。

4

1 に答える 1

0

以下が機能するはずです。

SoapObject request = new SoapObject("urn:checkOTP", "checkOTP")

これは、名前空間をエンベロープではなく、body 要素内の method 要素への属性として追加するようですが、機能します。

于 2014-04-23T14:07:56.110 に答える