안드로이드에서 SOAP을 통해 웹서비스에 연결할려고 합니다.
방법을 찾다가 ksoap라는게 있어서 겨우 연결을 했는데요..
이넘이 String같은 기본형 데이터나 기본형 데이터로 이루어진 배열, List등은 가져오겠는데
Map이나 다른 객체로 된놈들은 처리를 못하겠네요...
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); request.addProperty("deviceId", null); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet=true; envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); androidHttpTransport.call(SOAP_ACTION, envelope); SoapObject so = (SoapObject)envelope.bodyIn; String result = so.getProperty(0).toString());
이런식으로 String은 가져왔는데 Map등의 데이터는 어떻게 가져와야 하나요??
안녕하세요?? 저는 LG에서 안드로이드 플랫폼 NATIVE 어플을 개발하고있는 개발자 입니다.
저도 안드로이드에서 웹서비스를 연동하여 개발을 하고 있는데
ksoap2 버젼 기준으로 ksoap 자체에서는 Complex data 송/수신이 전혀 작동하지 않더군요.
즉 기본형외에는 데이타 송/수신을 전혀 할 수가 없었습니다.
해당 내용인즉, 아래 링크 참조 부탁드립니다.
http://seesharpgears.blogspot.com/2010/10/ksoap-android-web-service-tutorial-with.html
위의 블러그에서 아래처럼
'In the lines about the property info, I show how to actually pass a Category class complex object to KSOAP.'
내용을 찾기 하시면 바로 찾으실겁니다.
바로 질문처럼 class 데이타를 어떻게 보내고, 받을 수 있는가? 라는 질문임을 알 수 있습니다.
하지만 실제로 이와같은 형태로 코드를 작성하고 실행을 아무리 해봐도
실제 클래스형 데이타는 전송시에 모두 깨져서 날라가 버리고 null 값이 모두 들어가지게 됩니다.
(즉 serialyzing 될때 인듯 생각됩니다.) ,
그리고 바로 리턴받은 soapObject 로부터 데이타를 아무리 꺼내봐도 모두 null 값만 들어간
프라퍼티를 얻게 됩니다.
저도 이것때문에 몇주째 제자리 걸음인데요, 도저히 해결책을 찾지 못해서
수백건의 외국 블러그와, 메일링 사이트, 구글링을 해보아도 해결책을 찾지 못했습니다.
그럼 수고하십시요.
Map 같은 경우에는 좌표로 가져오면 되지 않나요?