AndroidアプリケーションからKSoapを使用してASMXサービスを呼び出そうとしています。両方とも文字列型の2つのパラメータを受け入れます。.NETアプリケーションから呼び出された場合は成功しますが、AndroidアプリケーションのWebサービスからの呼び出しが空白のパラメーターを取得した場合、理由がわかりません。
これが同じコードです
static String NAMESPACE = "http://softco.org";
static String URL_WS = "http://www.dummy.com/newservice.asmx";
String GET_USER_DETAILS = "User_Verification";
SoapObject request = new SoapObject(NAMESPACE, GET_USER_DETAILS);
HttpTransportSE androidHttpTransport;
// add parameters and values
request.addProperty("MobileNo", String.valueOf("01234567899"));
request.addProperty("Password", String.valueOf("abcdef"));
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.encodingStyle = SoapSerializationEnvelope.XSD;
envelope.setOutputSoapObject(request);
// Web method call
SoapObject result;
try {
androidHttpTransport = new HttpTransportSE(URL_WS);
androidHttpTransport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
androidHttpTransport.call(NAMESPACE + "/" + GET_USER_DETAILS, envelope);
result = (SoapObject) envelope.getResponse();
// get the response
int propCnt = result.getPropertyCount();
request = null;
envelope = null;
androidHttpTransport = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
}
Fiddlerを使用してVisualStudioとEclipseの呼び出しの違いを確認しましたが、どちらも呼び出しに対して異なるxmlを生成することがわかりました。Ksoapで正しいものを送信する方法がわかりません。
VisualStudioによる呼び出し-
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<User_Verification xmlns="http://softco.org/"><MobileNo xmlns="">01234567899</MobileNo><Password xmlns="">abcdef</Password></User_Verification></s:Body></s:Envelope>
EclipseAndroidプロジェクトからの呼び出し
<?xml version="1.0" encoding="utf-8"?>
<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><User_Verification xmlns="http://softco.org" id="o0" c:root="1"><MobileNo i:type="d:string">01234567899</MobileNo><Password i:type="d:string">abcdef</Password></User_Verification></v:Body></v:Envelope>
どんなポインタも大いに役立ちます。