2012-06-15 3 views
2

Я пытаюсь получить доступ к веб-сервису через Android-телефон. Веб-сервис публикуется на локальном хосте. Но теперь я получаю следующую ошибку. Есть ли у кого-нибудь опыт?Исключение XML Pull Parser в android

06-15 14:27:03.969: WARN/System.err(277): org.xmlpull.v1.XmlPullParserException: attr value delimiter missing! (position:START_TAG <html dir='null'>@2:11 in [email protected]) 
    06-15 14:27:04.000: WARN/System.err(277):  at org.kxml2.io.KXmlParser.exception(KXmlParser.java:273) 
    06-15 14:27:04.000: WARN/System.err(277):  at org.kxml2.io.KXmlParser.error(KXmlParser.java:269) 
    06-15 14:27:04.000: WARN/System.err(277):  at org.kxml2.io.KXmlParser.parseStartTag(KXmlParser.java:708) 
    06-15 14:27:04.000: WARN/System.err(277):  at org.kxml2.io.KXmlParser.nextImpl(KXmlParser.java:342) 
    06-15 14:27:04.000: WARN/System.err(277):  at org.kxml2.io.KXmlParser.next(KXmlParser.java:1385) 
    06-15 14:27:04.011: WARN/System.err(277):  at org.kxml2.io.KXmlParser.nextTag(KXmlParser.java:1415) 
    06-15 14:27:04.011: WARN/System.err(277):  at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:126) 
    06-15 14:27:04.011: WARN/System.err(277):  at org.ksoap2.transport.Transport.parseResponse(Transport.java:63) 
    06-15 14:27:04.099: DEBUG/dalvikvm(277): GC_FOR_MALLOC freed 5747 objects/296016 bytes in 90ms 
    06-15 14:27:04.109: WARN/System.err(277):  at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100) 
    06-15 14:27:04.109: WARN/System.err(277):  at com.psl.virtual.transport.HttpUtil.sendRequest(HttpUtil.java:41) 
    06-15 14:27:04.109: WARN/System.err(277):  at com.psl.virtual.ui.VMLoginScreen.check(VMLoginScreen.java:98) 
    06-15 14:27:04.109: WARN/System.err(277):  at java.lang.reflect.Method.invokeNative(Native Method) 
    06-15 14:27:04.109: WARN/System.err(277):  at java.lang.reflect.Method.invoke(Method.java:521) 
    06-15 14:27:04.109: WARN/System.err(277):  at android.view.View$1.onClick(View.java:2067) 
    06-15 14:27:04.109: WARN/System.err(277):  at android.view.View.performClick(View.java:2408) 
    06-15 14:27:04.109: WARN/System.err(277):  at android.view.View.onKeyUp(View.java:4121) 
    06-15 14:27:04.109: WARN/System.err(277):  at android.widget.TextView.onKeyUp(TextView.java:4431) 
    06-15 14:27:04.109: WARN/System.err(277):  at android.view.KeyEvent.dispatch(KeyEvent.java:1061) 
    06-15 14:27:04.109: WARN/System.err(277):  at android.view.View.dispatchKeyEvent(View.java:3740) 
    06-15 14:27:04.109: WARN/System.err(277):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788) 
    06-15 14:27:04.109: WARN/System.err(277):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788) 
    06-15 14:27:04.120: WARN/System.err(277):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788) 
    06-15 14:27:04.120: WARN/System.err(277):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:788) 
    06-15 14:27:04.120: WARN/System.err(277):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1667) 
    06-15 14:27:04.120: WARN/System.err(277):  at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1102) 
    06-15 14:27:04.120: WARN/System.err(277):  at android.app.Activity.dispatchKeyEvent(Activity.java:2063) 
    06-15 14:27:04.120: WARN/System.err(277):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1643) 
    06-15 14:27:04.120: WARN/System.err(277):  at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2471) 
    06-15 14:27:04.120: WARN/System.err(277):  at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2441) 
    06-15 14:27:04.130: WARN/System.err(277):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1735) 
    06-15 14:27:04.130: WARN/System.err(277):  at android.os.Handler.dispatchMessage(Handler.java:99) 
    06-15 14:27:04.130: WARN/System.err(277):  at android.os.Looper.loop(Looper.java:123) 
    06-15 14:27:04.130: WARN/System.err(277):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
    06-15 14:27:04.130: WARN/System.err(277):  at java.lang.reflect.Method.invokeNative(Native Method) 
    06-15 14:27:04.130: WARN/System.err(277):  at java.lang.reflect.Method.invoke(Method.java:521) 
    06-15 14:27:04.130: WARN/System.err(277):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
    06-15 14:27:04.130: WARN/System.err(277):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
    06-15 14:27:04.130: WARN/System.err(277):  at dalvik.system.NativeStart.main(Native Method) 
+0

«

+0

не могли бы вы рассказать мне, где найти эту декларацию? – user1458193

+0

как в первой строке log cat, которую я нашел (позиция: START_TAG @ 2:11 в [email protected]), поэтому просто сказал, чтобы напечатать ответ, поступающий в лог-cat или любой другой место, чтобы проверить, что –

ответ

1

Я нашел 2 случая, когда XmlPullParser не нравится HTML разбираемый - в первом случае HTML является действительным, и во втором случае HTML недействителен пока кажется вероятным:

1) кавычки значения атрибутов, как в:

<img class=logoimg ... 

Однако HTML (5.1) спецификация позволяет это:

Синтаксис значения без кавычек Имя атрибута, за которым следуют ноль или более символов пробела, за которым следует одиночный символ UQUID + SQUALS U + 003D, за которым следуют ноль или более символов пробела, за которым следует значение атрибута, которое в дополнение к требованиям приведенные выше для значений атрибута, не должны содержать буквенных пробелов, любые символы U + 0022 ЦИТАТЫ ЦИКЛА ("), символы U + 0027 APOSTROPHE ('), символы U + 003D EQUALS SIGN (=), U + 003C LESS-THAN Символы SIGN (<), символы U + 003E GREATER-THAN SIGN (>) или символы U + 0060 GRAVE ACCENT (`) и не должны быть пустой строкой.

В следующем примере, значение атрибут задаются с помощью синтаксиса некотировочного значения атрибута:

<input value=yes> 

Если атрибут с помощью синтаксиса в кавычках атрибута должен сопровождаться другим атрибутом или самым необязательный символ U + 002F SOLIDUS (/), разрешенный на шаге 6 синтаксиса начального тега выше, тогда должен быть пробельный символ, разделяющий два.

2) Значение атрибутов, разделенное запятой, например:

<meta name=viewport content="width=device-width, initial-scale=1"> 

снова от спецификации:

Если атрибут с помощью синтаксиса двойных кавычек атрибута должна быть с последующим другим атрибутом, тогда должен быть пробельный символ , разделяющий два.

Суть этого является, код синтаксического анализа (то есть код, использующий XmlPullParser) должен терпеть исключительные случаи - в частности, поскольку анализатор, кажется, продолжает идти хорошо.

Смежные вопросы