2012-11-18 2 views
0

xml 스키마를 반환하는 웹 서비스를 사용하고 있습니다. SOAP을 통해 호출하려고합니다. 나는 그것을 코드화했다. 그러나 어떤 결과물도 얻지 못하고있다. 아무도 나를 도울 수 없습니까?Android : SOAP를 사용하여 웹 서비스 호출

내 웹 서비스는 다음과 같습니다

http://dev.sigwp.org/WikipediaOntologyAPIv4/Service.asmx?WSDL

+0

여기에 제 코드를 붙여 넣을 수 없습니다. 이메일 주소를 알려주시겠습니까? –

답변

0

당신이 정말 원하는 것을 질문에서 명확하지 않지만 당신이 안드로이드에서 SOAP 웹 서비스를 사용하려면이 튜토리얼을 따라 할 수

http://www.c-sharpcorner.com/UploadFile/88b6e5/how-to-call-web-service-in-android-using-soap/

+0

나는 튜토리얼을 따라 갔다. 이 자습서에서는 응답으로 string을 리턴합니다. 내 웹 서비스에서 그들은 xml 스키마를 반환하고 있습니다. 어떻게 표시합니까? –

0

로그인을 위해 비누 요청을하기 위해 아래 내용을 사용했습니다. 귀하의 필요에 맞게 수정하십시오. 프로젝트 lib에 최신 비누 병 파일이 포함되어 있는지 확인하십시오.이 자습서를 살펴보십시오. http://www.youtube.com/watch?v=v9EowBVgwSo.

SoapObject request = new SoapObject("NameSpace", "MethodName");// 
    loginreq.setValue("<LoginReq>" 
         +"<nickName>"+name+"</nickName>" 
         +"<password>"+pass+"</password>" 
         +"<IMEI>"+mImei+"</IMEI>" 
         +"<location>" 
         +"<latitude>"+lati+"</latitude>" 
         +"<longitude>"+longi+"</longitude>" 
         +"</location>" 
         +"</LoginReq>");//my requirement was to send request in this format. 
    PropertyInfo loginreq = new PropertyInfo(); 
      loginreq.name="LoginReq"; 
      loginreq.type=String.class; 
      request.addProperty(loginreq); //sending request. 
      SoapSerializationEnvelope envelop = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
      envelop.setOutputSoapObject(request); 
      System.out.println("Request is"+request); 

     HttpTransportSE androidHttpTransport = new HttpTransportSE ("http://bugs.medalsystems.com:8080/ThirdEye/ThirdEyeWebService?wsdl");//your wsdl link 
     androidHttpTransport.debug=true; 

     try 
     { 
     androidHttpTransport.call("http://service.medal.org/ThirdEyeWebService/LoginRequest", envelop); 
     SoapObject response=(SoapObject) envelop.bodyIn; 
     System.out.println("Response is......"+response.toString()); 
    System.out.println("Response is......"+response.toString()); 

     DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance(); 
     DocumentBuilder db = dbf.newDocumentBuilder(); 
     InputSource is = new InputSource(); 
     is.setCharacterStream(new StringReader(response.getProperty(0).toString())); 

     Document doc = db.parse(is);//parse xml 
     NodeList nodes = doc.getElementsByTagName("StandardResp"); 

     for (int i = 0; i < nodes.getLength(); i++) 
      { 

       Element element = (Element) nodes.item(i); 

       NodeList rc = element.getElementsByTagName("respCode").item(0).getChildNodes();//get value form respCode tag 
       ResponseCode = ((Node) rc.item(0)).getNodeValue(); 
       System.out.println("Respone Code...."+ResponseCode); 

       NodeList mess = element.getElementsByTagName("message").item(0).getChildNodes(); 
       Message = ((Node) mess.item(0)).getNodeValue(); 
       System.out.println("Message....."+Message); 

       NodeList sess = element.getElementsByTagName("sessionId").item(0).getChildNodes(); 
       SessionIdlin = ((Node) sess.item(0)).getNodeValue(); 
       System.out.println("Session Id....."+SessionIdlin); 

      } 

     } 
     } 
     catch(Exception e) 
     { 
     e.printStackTrace(); 
     } 

Parsing XML schema java.

+0

나는 튜토리얼을 따라 갔다. 이 자습서에서는 응답으로 string을 리턴합니다. 내 웹 서비스에서 그들은 xml 스키마를 반환하고 있습니다. 어떻게 표시합니까? –

+0

당신은 색소폰이나 DOM 파서를 사용하여 XML을 구문 분석해야합니다 – Raghunandan

+0

위의 확인하십시오. 나는 편집했다. 나는 응답에서 xml 태그에있는 비슷한 요구 사항을 가지고있다. 나는 많은 태그가 없기 때문에 dom 파서를 사용했다. 요구 사항에 따라 파서를 선택하십시오. 희망이 도움이됩니다. – Raghunandan