2011-07-19 14 views
2

同じ問題を抱えている他のユーザーがいましたが、正直に答えがわかりませんでした。KSOAP2を使用したWebサービスへの接続 - XmlPullParserExceptionの取得

私はPHP Webサービス(NuSOAPを使用)に接続するアンドロイドクライアントを持っており、ローカルですべて正常に動作します。私は自分のWebサービスを展開し、クライアント上の変数を更新すると、私は次のエラーを取得しています:

org.xmlpull.v1.xmlpullparserexception: unexpected type (position: END_DOCUMENT [email protected]:0 in [email protected])

これは、ランダムに起こる - 例えば、ログインのために、最初の試みは、「間違ったパスワード」(sucessfull接続の場合Webサービスに)2回目の試行でエラーが発生します。それが受け入れられた場合、私はアプリケーションを強制終了します(私は別のアクティビティを開始します)。それはその問題のためだと思います。

私は手動で任意のXMLファイルを処理しないくらいのため、問題は何見当がつかないし、あなたが私の接続文字列は以下の通りですhere

を見ることができるように、私のWDSLは大丈夫です:

private static final String URL = "http://apkitchen.voku-online.de:8080/webs.php"; 
private static final String NAMESPACE = "urn:hellowsdl"; 
final String SOAP_ACTION = "urn:hellowsdl#auth"; 
final String METHOD_NAME = "auth"; 
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

私の完全な接続機能は次のとおりです:

public Object soap(String METHOD_NAME, String SOAP_ACTION, String NAMESPACE, String URL) 
      throws IOException, XmlPullParserException { 

     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
     request.addProperty("username", "Maxxd"); 
     request.addProperty("password", "xxxx"); 
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.setOutputSoapObject(request); 
     HttpTransportSE httpTransport = new HttpTransportSE(URL); 
     httpTransport.call(SOAP_ACTION, envelope); 
     Object result = envelope.getResponse(); 
     return result; 
    } 

私は正直なところ、どうしてこのようなことが起こるのかわかりません。

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Body> 
<ns1:authResponse xmlns:ns1="urn:hellowsdl"> 
<return xsi:type="xsd:string">0</return> 
</ns1:authResponse> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 
<!.................. 

封筒自体、それは大丈夫だ、しかし:

は、私は、応答XMLファイルをダンプし、それはモール形成されているように見えます

(... SOLUTIONではなく)問題を発見しましたコメントタグの終わりがありません...どうすればこの問題を解決できますか?

+0

SoapSerializationEnvelopeを使用していますか?どのバージョン? – user802421

+0

バージョン11 V10とV12の2つを試しました。 – Tiago

答えて

4

それはそれは私が持つ数十人を見たので、私は、これが誰かを期待している願っています

System.setProperty("http.keepAlive", "false"); 

を使用して解決のAPIレベルにKSOAP2アンドロイド実装に< 9.

問題だように見えます同じ問題。

+0

この声明をどこに置くのですか? HTTPTransportSEステートメントの後に? –

0

私はそれがあなたを助けるかどうかわかりませんが、同じ例外がありました。 封筒のバージョンを11から10に変更したとき、それは魔法のように消えました:o。 多分あなたはそれを試してみたいかもしれません。

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10); 
+0

残念ながら、それは私にとってはうまくいきません。 – Tiago

関連する問題