私は、ksoapを使用してc#asp.netで記述されたwsdlWebサービスと通信するAndroidクライアントを持っています。Webサービスとクライアントの間で引数の型を一致させることに問題があります。Webサーバーは、この種の要求(自動生成)を想定しています。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetDetails xmlns="http://host.org/">
<event_id>int</event_id>
</GetDetails>
</soap:Body>
</soap:Envelope>
クライアントはksoapを使用してリクエストを送信し、次のようになります。
<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:GetDetails id="o0" c:root="1" xmlns:n0="http://tempuri.org">
<event_id i:type="d:int">1</event_id>
</n0:GetDetails>
</v:Body>
</v:Envelope>
何らかの理由で、リクエストが最初のオプションのように手動でアセンブルされると、WSは次のクライアントのリクエストを0として解析します(追加のタイプ属性-i:type = "d:int"のためだと思います)。正しく機能します。Webサービスにksoap形式を正しく読み取らせるにはどうすればよいですか、またはksoapリクエストのように期待される形式を変更するにはどうすればよいですか。(WebサービスのSOAPプロトコルは自動生成されます)。