Web サービス (Soap の実装) からデータを要求するアプリを作成しています。
この質問を見ている人は、コメントで質問を投稿してください... 質問に対する回答がありません。質問があるかどうか尋ねてください。本当に助けが必要です。行き詰まっています!!
したがって、リクエストを作成するには、ksoap ライブラリを使用する必要があります。Web サービスは、タイプ XML のレスポンスを返すようにコーディングされています。Web サービス自体をブラウザーでテストすると、次のような結果が表示されます。
?xml version="1.0" encoding="utf-8" ?>
- <SOBKeyList>
- <Key>
<value>12686</value>
</Key>
- <Key>
<value>16238</value>
</Key>
- <Key>
<value>26978</value>
</Key>
</SOBKeyList>
明らかにXMLファイル...
However
このコードを使用して結果を取得すると:
public String getXmlFromUrl(String url) {
// TODO Auto-generated method stub
String xml = null;
SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME);
PropertyInfo pi = new PropertyInfo();
pi.setName("fkey");
pi.setValue(0);
pi.setType(Integer.class);
request.addProperty(pi);
pi = new PropertyInfo();
pi.setName("tkey");
pi.setValue(999999);
pi.setType(Integer.class);
request.addProperty(pi);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(url);
Object response = null;
try {
httpTransport.call(SOAP_ACTION, envelope);
response = envelope.getResponse();
xml = response.toString();
Log.d("xml:", xml);
} catch (SoapFault e) {
// TODO Auto-generated catch block
Log.d("Soap Fault", e.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
Log.d("IOexception", e.toString());
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
Log.d("XmlPullParserException", e.toString());
}
return xml;
}
これは、私が作成したログ エントリによって確認されたネストされた SOAP 構造 を返します( ) 対応する LogCat エントリは次のとおりです: (SOAP 構造の階層構造が明確になるようにフォーマットしました... )Log.d("xml:", xml);
anyType{
SOBKeyList=anyType{
Key=anyType{value=12686 ; };
Key=anyType{value=16238 ; };
Key=anyType{value=26978 ; };
};
}
必然的に XML が必要な理由は、後で文字列を解析してDOM要素を取得し、上記の文字列が渡されると次のように返されるためです。
org.xml.sax.SAXParseException: 予期しないトークン (position:TEXT anyType{SOBKeyLi...@1:119 in java.io.StringReader@40ec9c68)
また、それ以降のコード全体は、応答がXMLであるという事実に依存しています。
私が XML を予期した理由の説明: Web サービスをテストしていないのに、XML を予期してアプリをコーディングした理由を尋ねられるかもしれません。 SOAP 構造を悪用するために残りのコードを変更する時間がありません!! --- 困っています。助けてください!