2017-03-31 5 views
0
アンドロイド

に動作していない、私は要求して送信されたすべてのパラメータは、サーバksoapのsetProperityは、私は奇妙な問題に直面しています</p> <p>の.asmx Webサービスを消費するアプリケーションを構築してい

これをのnull私の方法であり、私は私と一緒にフォーマットし、何も多くの作業を使用してい

try { 

        SoapObject request = new SoapObject(DealightsConstants.NAMESPACE, DealightsConstants.METHOD_MOBILE_LOGIN); 
        //request.addProperty(DealightsConstants.METHOD_MOBILE_LOGIN_USERNAME, username); 
        //request.addProperty(DealightsConstants.METHOD_MOBILE_LOGIN_PASSWORD, password); 
        PropertyInfo pi = new PropertyInfo(); 
        pi.setName(DealightsConstants.METHOD_MOBILE_LOGIN_USERNAME); 
        pi.setValue(username); 
        pi.setType(String.class); 

        PropertyInfo pi1 = new PropertyInfo(); 
        pi1.setName(DealightsConstants.METHOD_MOBILE_LOGIN_PASSWORD); 
        pi1.setValue(password); 
        pi1.setType(String.class); 

        request.addProperty(pi); 
        request.addProperty(pi1); 

        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
        envelope.dotNet=true; 
        envelope.setOutputSoapObject(request); 

        HttpTransportSE androidHttpTransport = new HttpTransportSE(DealightsConstants.URL); 
        androidHttpTransport.call(DealightsConstants.SOAP_ACTION + DealightsConstants.METHOD_MOBILE_LOGIN, envelope); 
        androidHttpTransport.debug=true; 

        Object result = envelope.getResponse(); 
        if (result != null) { 

         Log.i("AMIRA" , result.toString()); 
         JSONArray array = new JSONArray(result.toString()); 
         if (array != null && array.length() > 0) { 
          return array.getJSONObject(0); 
         } else { 
          return null; 
         } 
        } else { 
         return null; 
        } 
       } catch (Exception e) { 
        e.printStackTrace(); 
        return null; 
       } 

EDIT

私自身のソープ・プロジェクトと比較ASMX方法の説明

POST /DealightsWS.asmx HTTP/1.1 
Host: ------ 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 
SOAPAction: "Dealights/mobileLogin" 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <mobileLogin xmlns="Dealights"> 
     <uname>string</uname> 
     <pass>string</pass> 
    </mobileLogin> 
    </soap:Body> 
</soap:Envelope> 

答えて

0

の一部、多分これはそれを修正します:私は削除した

androidHttpTransport.call(DealightsConstants.SOAP_ACTION, envelope); 

予告:

+ DealightsConstants.METHOD_MOBILE_LOGIN 

これはすでに封筒

に装着されているリクエストで提供されます私は、パラメータを送信しませんでしたか、私はint型のパラメータを送信する場合、問題はあなたが私は私の質問を編集したWSDL
+0

同じ構造で動作しますが、それを確認してください –

+0

文字列パラメータで起こる場合の方法の – buradd

+0

の任意の部分を提供することができます –

関連する問題