1
SOAP 서비스를 호출하기 위해 Android 앱에서 KSOAP2 라이브러리를 사용하고 있습니다. 이 코드는 에뮬레이터 버전 2.2에서 잘 작동합니다. 하지만 난 2.2 (또한 HTC 산불) 내 휴대 전화에서 응용 프로그램을 실행하려고하면 XMLPullParser 예외가 나타납니다 ...이 link을 보았지만 아무도 그에게 대답했다. 또한, 다른 토론을 보았다 here하지만하지 않았다 거기에 제안 된 것을 정확하게 이해하십시오. 누군가이 문제를 해결하는 방법에 대해 나에게 어떤 생각을 줄 수 있습니까? 아니면 내가 사용할 수있는 SOAP 서비스를 사용할 수있는 다른 신뢰할 수있는 방법이 있습니까? 내 코드와 로그를 찾으십시오. 실제 장치에서 실행하는 동안 로그에서SOAP 호출 XMLPullParser 예외 발생 실제 장치에서만 예외
SoapObject request=new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
envelope.setOutputSoapObject(request);
envelope.implicitTypes = false;
HttpTransportSE transport=new HttpTransportSE(URL);
try{
Log.v("Inside","Inside try");
transport.debug = true;
transport.call(SOAP_ACTION, envelope);
String xml=transport.responseDump;
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader (xml));
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
System.out.println("Start document");
} else if(eventType == XmlPullParser.START_TAG) {
if(xpp.getName().equals("MMDraw")){
System.out.println("Start tag "+xpp.getName());
megaMResult=new HashMap<String, String>();
boolean endParse=false;
while(!endParse){
xpp.nextTag();
if(xpp.getEventType()==XmlPullParser.END_TAG && xpp.getName().equals("MMDraw"))
{
endParse=true;
System.out.println("End Tag of MMDraw Reached");
}
else{
String key=xpp.getName();
megaMResult.put(xpp.getName(), xpp.nextText());
}
}
메시지
05-11 00:00:19.413: W/System.err(8531): org.xmlpull.v1.XmlPullParserException: unexpected type (position:END_DOCUMENT [email protected]:0 in [email protected])
네, 맞아요 ... XML 응답 대신 서버에서 HTML 오류 페이지가 나타납니다. 문제는 내 휴대 전화의 Wi-Fi 연결과 함께 자동으로 아파트 커뮤니티에서 제공하는 Wi-Fi를 선택했습니다. 내 집에 와이파이 연결 이상. HTML에서 서버를 찾을 수 없음 오류 페이지가 나타납니다. –