문제

2016-12-13 3 views
0
여기

내가 TxRefNum을 얻을 필요가 나의 SOAP의 웹 서비스의 구조 ksoap2 라이브러리 사용의 SOAP 웹 서비스를 구문 분석하는 데 :문제

나는 다음과 같은 데이터를 구문 분석하는 ksoap2 라이브러리를 사용하고
<?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:tem="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:Header/> 
<soap:Body> 
<tem:MakeCreditCardPayment> 
<tem:objCreditCardBookingPaymentRow> 
<tem:ProfessionalUserMappingStudioID>18</tem:ProfessionalUserMappingStudioID> 
<tem:ConsumerUserMappingStudioID>5</tem:ConsumerUserMappingStudioID> 
<tem:Cost>5</tem:Cost> 
<tem:CardNumber>4111111111111111</tem:CardNumber> 
<tem:CardHolderName>Shyam</tem:CardHolderName> 
<tem:ExpirationDate>042020</tem:ExpirationDate> 
<tem:CVV>123</tem:CVV> 
<tem:ProfessionalSessionID>320</tem:ProfessionalSessionID> 
<tem:TxRefNum></tem:TxRefNum> 
</tem:objCreditCardBookingPaymentRow> 
</tem:MakeCreditCardPayment> 
</soap:Body> 
</soap:Envelope> 

하지만 오전 그것에 대한 적절한 해결책을 찾지 못했습니다. 여기에 내가 뭐하는 거지입니다 :

final String NAMESPACE = "http://tempuri.org/"; 
      final String URL = NewURLs.BASE_URL + "api/PaymentService.asmx"; 
      final String SOAP_ACTION = "http://tempuri.org/MakeCreditCardPayment"; 
      final String METHOD_NAME = "MakeCreditCardPayment"; 
      final String INNER_METHOD_NAME = "tem:objCreditCardBookingPaymentRow"; 
      // the above parameter can be taken from the users web service 
      // (?WSDL) 
      // url 

      SoapObject request = new SoapObject(NAMESPACE,METHOD_NAME); 
      SoapObject innerRequest = new SoapObject(NAMESPACE,INNER_METHOD_NAME); 
      innerRequest.addProperty("tem:ProfessionalUserMappingStudioID", bookingDetailsList.get(0).getUserMappingStudioID()); 
      innerRequest.addProperty("tem:ConsumerUserMappingStudioID",loginCredentials.getUserMappingStudioId()); 
      innerRequest.addProperty("tem:Cost",bookingDetailsList.get(0).getCost()); 
      innerRequest.addProperty("tem:CardNumber", creditCardNo); 
      innerRequest.addProperty("tem:CardHolderName", creditCardHolder); 
      innerRequest.addProperty("tem:ExpirationDate", expirationDate); 
      innerRequest.addProperty("tem:CVV", cvv); 
      innerRequest.addProperty("tem:ProfessionalSessionID",bookingDetailsList.get(0).getProfessionalSessionID()); 
      innerRequest.addProperty("tem:TxRefNum", ""); 

      request.addProperty("tem:objCreditCardBookingPaymentRow",innerRequest); 
      utils.sysOut("some text", "" + request); 

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

      androidHttpTransport.call(SOAP_ACTION, envelope); 
      SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn; 
      String str = resultsRequestSOAP.toString(); 
      Log.v("TAG_SOAP_ACTION", str); 

답변

0

는 다음과 같이하십시오 : 어떤 URL에 대한

SoapObject res=(SoapObject)envelope.bodyIn; 
SoapObject t=(SoapObject)res.getProperty("MakeCreditCardPayment"); 

for(int i=0; i<t.getPropertyCount(); i++){ 
    SoapObject carditCard=(SoapObject)t.getProperty(i); 
    String userID = carditCard.getProperty("ProfessionalUserMappingStudioID").toString(); 
} 
+0

를? –

+0

어떤 URL ?? url은 요청을하고 응답을받는 데 사용됩니다. –