簡體   English   中英

Android中的Call SOAP服務中的問題

[英]Issue in Call SOAP service in android

您好朋友,我想將SOAP服務集成如下代碼

String METHOD_NAME = "processPayment";
String NAMESPACE = "http://paymentgateway.mcommerce/";
String URL = "http://182.19.20.182:81/mcommerce.webservices/pgService?wsdl";

Element authHeader = new Element();
        authHeader.setNamespace(NAMESPACE);


        Element username = authHeader.createElement(NAMESPACE, "userId");
        username.addChild(Node.TEXT, "aJtlkG0NQTRBaLgVt4YC4A==");
        authHeader.addChild(Node.ELEMENT, username);

        Element password = authHeader.createElement(NAMESPACE, "password");
        password.addChild(Node.TEXT, "7p/MAUl80KP+FdRERRyvlQ==");
        authHeader.addChild(Node.ELEMENT, password);

        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

        request.addProperty("MCODE", "0021225252");
        request.addProperty("TXNDATE", "12052015");
        request.addProperty("TRANSREFNO", "20090824203454");
        request.addProperty("MSISDN", "9879900088");
        request.addProperty("AMT", 100.0);
        request.addProperty("NARRATION", "TEXT");
        request.addProperty("SURCHARGE", 5);
        request.addProperty("FILLER1", "");
        request.addProperty("FILLER2", "");
        request.addProperty("FILLER3", "");
        request.addProperty("FILLER4", "");
        request.addProperty("FILLER5", "");
        request.addProperty("mPIN", "1256");

        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);
        envelope.headerOut = new Element[]{authHeader};

        /*envelope.headerOut = new Element[1];
        envelope.headerOut[0] = buildAuthHeader();*/

        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        try {
            androidHttpTransport.call("", envelope);
            SoapObject response = (SoapObject) envelope.getResponse();
            System.out.print("SOAP RESPONSE " + response);
        } catch (Exception e) {
            e.printStackTrace();
        }

當我運行上面的代碼時,我得到這樣的錯誤

java.lang.RuntimeException:無法序列化:第100.0行
androidHttpTransport.call(“”,信封);

我的SoapAction在我的服務中為空,因此我沒有在代碼中提及,所以我知道如何解決此問題?

我想這是罪魁禍首:

request.addProperty("AMT", 100.0);

觀察到100.0不像其他所有屬性值一樣用雙引號引起來。 因此將其更改為

request.addProperty("AMT", "100.0");

看看是否可行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM