2012-06-25 8 views
5

からSOAPを使用してMagentoのAPIを呼び出すときに、私はアンドロイドから石鹸を使用してMagentoのAPIを呼び出すためにしようとしていますが、私はXMLpullparser Exception.Iを取得していますがGoogleでseachedしかし、私は、任意の解決策を見つけることができません.Belowは以下XMLPullパーサ例外アンドロイド

1 import java.io.IOException; 

2 import org.ksoap2.SoapEnvelope; 
3 import org.ksoap2.serialization.SoapObject; 
4 import org.ksoap2.serialization.SoapSerializationEnvelope; 
5 import org.ksoap2.transport.AndroidHttpTransport; 
6 import org.xmlpull.v1.XmlPullParserException; 

7 import android.app.Activity; 
8 import android.os.Bundle; 
9 import android.util.Log; 

10  public class MagentoSoapActivity extends Activity { 
11   /** Called when the activity is first created. */ 

12  private static final String NAMESPACE = "urn:Magento"; 
13  private static final String Method_Name="login"; 
14  private static final String URL ="http://www,mymagento,com/api/soap/?wsdl=1"; 
15  private static final String SOAP_ACTION ="urn:Magento/login"; 

16 @Override 
17 public void onCreate(Bundle savedInstanceState) { 
18 super.onCreate(savedInstanceState); 
19 setContentView(R.layout.main); 
20 try { 
21  SoapObject request = new SoapObject(NAMESPACE,Method_Name); 

22  request.addProperty("username", "XXX"); 
23  request.addProperty("apiKey", "YYY"); 
24  SoapSerializationEnvelope envelopes = new SoapSerializationEnvelope(
25    SoapEnvelope.VER11); 

26  envelopes.dotNet = false; 
27  envelopes.xsd = SoapSerializationEnvelope.XSD; 
28  envelopes.enc = SoapSerializationEnvelope.ENC; 


29  envelopes.setOutputSoapObject(request); 

30  AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL); 
31  androidHttpTransport.debug =true; 
32  androidHttpTransport.call(SOAP_ACTION, envelopes);//Getting the Exception here 
33  Object result = envelopes.getResponse(); 

34  Log.d("sessionId", result.toString()); 

35  //making call to get list of customers 

36  String sessionId = result.toString(); 

37  request = new SoapObject(NAMESPACE,"customerCustomerList"); 
38  request.addProperty("sessionId",sessionId); 

39  envelopes.setOutputSoapObject(request); 
40  androidHttpTransport.call(SOAP_ACTION, envelopes); 

41  result = envelopes.getResponse(); 

42  Log.d("Customer List", result.toString()); 

43 } catch (Exception e) { 
44  e.printStackTrace(); 
45 } 
46 } 
47 } 

..私のコードでスタックトレースです:

org.xmlpull.v1.XmlPullParserException: expected: START_TAG 
{http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <definitions 
name='Magento' targetNamespace='urn:Magento'>@4:50 in 
[email protected]) 

私は本当にこのエラーにより押し下げています、私を助けてください。事前に おかげ

+0

あなたがコンパイルしているかjavaのバージョン? –

+0

あなたのURLは、間に無効なスペースを持っているようだ – Rajesh

+0

@vipul「http://indieswebs.in/demostore/api/soap/をWSDL = 1?」:おかげでreply.IためにJDK7を使用していますが、私はそれがあるとは思いませんバージョンの問題。 – krushnakant

答えて

1

私は完全なコードを変更しました.SOAPを使用する代わりに、XMLRPCを使用しています。http://code.google.com/p/android-xmlrpc/にXmLRPCライブラリがあり、このライブラリの使用例もあります。

これは、Android http://inchoo.net/mobile-development/android-development/parsing-the-xmlrpc-webservice-response-in-android/

にこの応答を解析する方法のためのリンクですが、これは誰かに役立ちます願っています。

お返事ありがとうございます。

+0

ねえ...同じタイプのアプリケーションを開発していて、上記の説明と同じエラーが発生しているように私を助けることができますか?私は上記のリンクを通過しましたが、何も理解していませんでした...助けてください –

+0

ちょっとしたバディ..あなたがオンラインになっているときに疑問に思っているメッセージを残してください... –

+0

こんにちは、何が疑問ですか? – krushnakant

3

変更:

private static final String URL ="http://indieswebs.in/demostore/api/soap/?wsdl=1"; 

private static final String URL ="http://indieswebs.in/demostore/api/soap"; 

関連する:

+0

おかげで、あなたのsolution.Itは、セッションIDを取得するために私は「XMlpullParser例外」という、私は同じエラーを得たその時点で「customerCustomerList」と呼ぶところで私のコードの行40でセッションIDを取得した後に取り組んでいる試みたが、今回は私が得た:org.xmlpull.v1.XmlPullParserException:expected:END_TAG {http://schemas.xmlsoap.org/soap/envelope/} Body(位置:END_TAG::石鹸/封筒/} SOAP-ENV [email protected] 236) – krushnakant

+0

こんにちは、私は「資源」でメソッド名を変更する場合、それは私のAPI v1のが、API V2の応答を与えています私は呼び出しメソッドを使用して応答を得ることができません。私はhttp://mage-page.net/2012/04/magento-api-v2-soap-demystified/を読んでいました。私はapi V2の呼び出しメソッドを使用できません。私は直接メソッドを使用する必要がありますが、私は方法を直接使用する方法を理解していません。あなたが何かを理解していれば、私はreply.Thanksを与えてください何かを知っている – krushnakant

6

それは私の作品URLから接尾辞「?WSDL」を削除します。 これが誰かを援助してくれることを願って〜

+1

これはなぜ助けになるのですか? – dove

1

私たちはこの種のアプリで多大な努力をしており、MagentoのAPIとの接続を容易にするためにAndroidとiOS用のSDKを提供しています。多分それはあなたの開発であなたを助けたり、あなたに、我々はまた、SOAP通信にksoapを使用しているとして、この問題を解決する方法についてのアイデアを与える:http://github.com/agilemonkeys/meets-android

関連する問題