2016-12-13 12 views
1

AndroidでKsoap2を使用してASP.NET Webサービスを使用しようとしています。ksoap2を使用してasp.net XML Webサービスを使用しています。

Object response=null 
try { 
    httpTransport.call(soap_action,envelope); 
    response=envelope.bodyIn; 
    Log.v("response is ", response.toString()); 
} catch(Exception e) { 
    e.getMessage(); 
} 

例外:

私は例外を取得下記のコードの切れ端でアンドロイドでこのサービスを呼び出すには

<?xml version="1.0" encoding="UTF-8"?> 
    -<Students> 
    -<student> 
     <stdName>Maria</stdName> 
     <stdRollNo>1</stdRollNo> 
    -</student> 
    -<student> 
     <stdName>Anna</stdName> 
     <stdRollNo>2</stdRollNo> 
    -</student> 
    -</Students> 

:Webサービスは、次のようなブラウザでXML応答を返します

response: "SoapFault" -faultcode:'soap:server' faultstrings: 'Server was not able to process request' object reference was not set to instance of an object" 

私は、Stackoverflowで与えられた別の提案に基づいてそのコードに変更を加えました

SoapObject response=null 
try{ 
    httpTransport.call(soap_action,envelope); 
    response=(SoapObject)envelope.bodyIn; 
    Log.v("response is ", response.toString()); 
} catch(Exception e){ 
    e.getMessage(); 
} 

SoapObject response=null 
try{ 
    httpTransport.call(soap_action,envelope); 
    response=(SoapObject)envelope.getresponse(); 
    Log.v("response is ", response.toString()); 
} catch(Exception e){ 
    e.getMessage(); 
} 

しかし、例外が、その後に変更されます。何が起こっているかのよう

java.lang.classCastexception 

任意のアイデア?

+0

私はksoap2と仕事をdidntのが、ここで十分に文書化されており、ウェブ源http://stackoverflow.com/documentation/android/からXMLを読み取るためのコードをテストしました1132/retrofit2/26230/reading-xml-form-url-with-retrofit-2#t = 201612131143466235901 – Adnan

答えて

0

以下が必要です。 1 /メソッド名(ASP.Netコードで定義されています):webMethNameを指定します。 2/SoapPrimitiveの代わりにSoapPrimitiveを使用すると、Webサービスを呼び出すことができます。

次でコードブロックを編集してください:

String resText = ""; 
    try { 
     // Invoke web service 
     httpTransport.call(soap_action + webMethName, envelope); 
     // Get the response 
     SoapPrimitive response = (SoapPrimitive) envelope.getResponse(); 
     // Assign it to resText variable       
     resText = response.toString(); 
    } 
    catch (Exception e) { 
     //Print error 
     e.printStackTrace(); 
     //Assign error message to resText 
     resText = "Error occured"; 
    } 
+0

soap_actionにsoapメソッド名を追加しました。あなたのソリューションを試しましたが、同じエラーが発生しました –

+0

貼り付けたコードをどのように呼び出しているかを確認するために、より多くのコードを共有する必要がありますか? – AndroWeed

関連する問題