2

重複の可能性:
Android、HTTP POST (SOAP) 経由で XML を送信

AndroidでSOAPサービスのリクエストを投稿するにはどうすればよいですか?

例を教えてください

私に知識を共有してくれてありがとう

4

1 に答える 1

0

KSoap ライブラリを使用します。これは私のプロジェクトのコードスニペットです。

SoapObject soapObject = new SoapObject(NAMESPACE_NIST_IMPORT,
                METHOD_NAME_NIST_IMPORT);

        ImportNistFileReq nistReq = new ImportNistFileReq(nistFile);

        PropertyInfo pi = new PropertyInfo();
        pi.setName("req");
        pi.setValue(nistReq);
        pi.setType(nistReq.getClass());
        soapObject.addProperty(pi);


        SoapSerializationEnvelope soapSerializationEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

        new MarshalBase64().register(soapSerializationEnvelope);

        soapSerializationEnvelope.setOutputSoapObject(soapObject);

        soapSerializationEnvelope.addMapping(NAMESPACE_NIST_IMPORT, "ImportNistFileReq", new ImportNistFileReq().getClass());


        soapSerializationEnvelope.dotNet = true;
        Object objectResult = null;

        try {
            HttpTransportSE httpTransportSE = new HttpTransportSE(
                    URL_NIST_IMPORT);

            httpTransportSE.debug = true;
            httpTransportSE.call(SOAP_ACTION_NIST_IMPORT, soapSerializationEnvelope);

            String host = httpTransportSE.getPath();
            Log.i("HOST: ", host);

            objectResult = (Object) soapSerializationEnvelope.getResponse();


        } catch (IOException e) {
            Log.e("IO: ", e.getMessage());
        } catch (XmlPullParserException e) {
            Log.e("XML: ", e.getMessage());
        }

このコードは、エンコードされたNIST ファイルを Web サービスに送信します。このようなリクエストは、AsyncTaskなどの別のスレッドで呼び出す必要があります。byte arrayByte64

定数:

  • NAMEPSPACE_NIST_IMPORT
  • METHOD_NAME_NIST_IMPORT
  • URL_NIST_IMPORT
  • SOAP_ACTION_NIST_IMPORT

.NET サービスによって提供されるwsdlファイルを参照します。素晴らしいチュートリアルはこれです。不明な点がある場合は、質問してください。幸運を。

于 2012-10-17T09:42:32.913 に答える