0

Android で webSservices を使用する方法を学びたいです。現時点では、wsdl ファイルを含むサーバーがあり、目的の Web サービスを呼び出すことができます。

私の問題は、サーバーからの応答を取得したことです。たとえば、ユーザーIDなど、私にとって重要な情報を抽出したいと思います。

これが私のコードです:

public class TestBookSoapActivity extends Activity {

private static final String SOAP_ACTION = "JournalArticles";
private static final String METHOD_NAME = "JournalArticles";
private static final String NAMESPACE = "http://api.mdpi.com/ws/";
private static final String URL = "http://api.mdpi.com/ws/server.php";


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    executeAppelSOAP();  
}

private void executeAppelSOAP() {
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    request.addProperty("JournalID", 1);
    request.addProperty("Volume", 12);
    request.addProperty("Issue", 1);

    SoapSerializationEnvelope enveloppe = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    enveloppe.setOutputSoapObject(request);
    AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport (URL);             
    try {
        androidHttpTransport.call(SOAP_ACTION, enveloppe);
        Object resultat = enveloppe.getResponse();
        System.out.println(" Journal Articles= " + resultat.toString());
    } catch(Exception e) {
        e.printStackTrace();
        System.out.println("Problem");
    }
}

enveloppe.parse() メソッドを使用できますか?

ありがとうございました。

4

1 に答える 1

1

次の 2 つの手順を実行する必要があります。

  1. 正しい XML 値を取得する
  2. XML を解析する

約1...代わりにHttpTransportSE
を好む:

AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport (URL);

使用する:

HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

次に、代わりに:

Object resultat = enveloppe.getResponse();    

使用する:

SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
String xml = response.toString();

応答がどのように見えるかをデバッガーで確認することもできます。詳細については、この質問への回答をご覧ください。

約 2...
任意の XML パーサーを使用できます。パフォーマンス上の理由から、私は SAX を好みます。Android の例: Androidで XML を解析する方法

よろしく、
ドラガン

于 2012-02-07T10:45:45.530 に答える