2012-01-11 16 views
-1

携帯電話でアプリを実行中にエミュレータで作業中にエラーが発生しました。なぜSAXパーサは電話では動作しませんが、エミュレータでは動作していますか?

HttpClient client = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost(BMIConstant.Url + "ValidLoginUser"); 
    List<BasicNameValuePair> nvps = new ArrayList<BasicNameValuePair>(); 
    password = etxt_pass.getText().toString().trim(); 
    username = etxt_user.getText().toString().trim(); 
    nvps.add(new BasicNameValuePair("Emailaddress", username)); 
    nvps.add(new BasicNameValuePair("Password", password)); 
    System.out.println("user name is--->"+username+ " password---->"+password); 
    System.out.println(httppost.getRequestLine()); 

    try { 
     UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(nvps, HTTP.UTF_8); 
     httppost.setEntity(p_entity); 
     HttpResponse response = client.execute(httppost); 
     HttpEntity responseEntity = response.getEntity();   
     SAXParserFactory spf = SAXParserFactory.newInstance(); 
     SAXParser sp = spf.newSAXParser(); 
     XMLReader xr = sp.getXMLReader(); 
     LoginHandler myLoginHandler = new LoginHandler(); 
     xr.setContentHandler(myLoginHandler); 
     xr.parse(new InputSource(responseEntity.getContent())); 
     LoginParser myLoginParser = myLoginHandler.parser; 
     System.out.println("return code is---->"+myLoginParser.getCode()); 

     id = Integer.parseInt(myLoginParser.getCode()); 

    } catch (Exception e) { 
     e.printStackTrace(); 

     removeDialog(0); 
    } 

1月11日12:47:15.194:W/System.errの(7300):org.apache.harmony.xml.ExpatParser $はParseException:行20では、カラム76:十分に形成されていない(無効トークン) 01-11 12:47:15.194:W/System.err(7300):org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:523) 01-11 12:47:15.194: W/System.err(7300):at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:482) 01-11 12:47:15.194:W/System.err(7300):org。 apache.harmony.xml.ExpatReader.parse(ExpatReader.java:320) 01-11 12:47:15.204:W/System.err(7300):org.apache.harmony.xml.ExpatReader.parse(ExpatReader。 java:277) 01-11 12:47:15.204:W/System.err(73 00):com.apps.clx.bouncemein.WelcomeActivity.tryLogin(WelcomeActivity.java:258) 01-11 12:47:15.204:W/System.err(7300):com.apps.clx.bouncemein。 WelcomeActivity $ 6.run(WelcomeActivity.java:161) 01-11 12:47:15.204:W/System.err(7300):android.app.Activity.runOnUiThread(Activity.java:3707) 01-11 12 :47:15.204:W/System.err(7300):com.apps.clx.bouncemein.WelcomeActivity.loadDataInView(WelcomeActivity.java:156) 01-11 12:47:15.204:W/System.err(7300 ):com.apps.clx.bouncemein.WelcomeActivity.access $ 1(WelcomeActivity.java:152) 01-11 12:47:15.204:W/System.err(7300):com.apps.clx.bouncemein。 WelcomeActivity $ 3.onClick(WelcomeActivity.java:84) 01-11 12:47:15.204:W/System.err(7300):android.view.View.performClick(View.java:2408) 01-11 12 :47:15.214:W/S ystem.err(7300):android.view.View $ PerformClick.run(View.java:8816) 01-11 12:47:15.214:W/System.err(7300):android.os.Handler。 handleCallback(Handler.java:587) 01-11 12:47:15.214:W/System.err(7300):android.os.Handler.dispatchMessage(Handler.java:92) 01-11 12:47: 15.214:W/System.err(7300):android.os.Looper.loop(Looper.java:123) 01-11 12:47:15.214:W/System.err(7300):android.app。 ActivityThread.main(ActivityThread.java:4633) 01-11 12:47:15.214:W/System.err(7300):java.lang.reflect.Method.invokeNative(ネイティブメソッド) 01-11 12:47 :15.214:W/System.err(7300):java.lang.reflect.Method.invoke(Method.java:521) 01-11 12:47:15.214:System.err(7300):at com .android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:858)

私を助けてください。

私は次のエラーが表示されたらチェックしてお知らせします。

I/System.out(11616): result is:<html> 
    01-11 16:09:42.415: I/System.out(11616):  <head> 
    01-11 16:09:42.415: I/System.out(11616):   <title>Runtime Error</title> 
    01-11 16:09:42.415: I/System.out(11616):   <style> 
    01-11 16:09:42.415: I/System.out(11616):   body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
    01-11 16:09:42.415: I/System.out(11616):   p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} 
    01-11 16:09:42.415: I/System.out(11616):   b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} 
    01-11 16:09:42.415: I/System.out(11616):   H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } 
    01-11 16:09:42.415: I/System.out(11616):   H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } 
    01-11 16:09:42.415: I/System.out(11616):   pre {font-family:"Lucida Console";font-size: .9em} 
    01-11 16:09:42.425: I/System.out(11616):   .marker {font-weight: bold; color: black;text-decoration: none;} 
    01-11 16:09:42.425: I/System.out(11616):   .version {color: gray;} 
    01-11 16:09:42.425: I/System.out(11616):   .error {margin-bottom: 10px;} 
    01-11 16:09:42.425: I/System.out(11616):   .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; } 
    01-11 16:09:42.425: I/System.out(11616):   </style> 
    01-11 16:09:42.425: I/System.out(11616):  </head> 
    01-11 16:09:42.425: I/System.out(11616):  <body bgcolor="white"> 
    01-11 16:09:42.425: I/System.out(11616):    <span><H1>Server Error in '/BounceMeInWS' Application.<hr width=100% size=1 color=silver></H1> 
    01-11 16:09:42.425: I/System.out(11616):    <h2> <i>Runtime Error</i> </h2></span> 
    01-11 16:09:42.425: I/System.out(11616):    <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "> 
    01-11 16:09:42.425: I/System.out(11616):    <b> Description: </b>An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. 
    01-11 16:09:42.425: I/System.out(11616):    <br><br> 
    01-11 16:09:42.425: I/System.out(11616):    <b>Details:</b> To enable the details of this specific error message to be viewable on remote machines, please create a &lt;customErrors&gt; tag within a &quot;web.config&quot; configuration file located in the root directory of the current web application. This &lt;customErrors&gt; tag should then have its &quot;mode&quot; attribute set to &quot;Off&quot;.<br><br> 
    01-11 16:09:42.425: I/System.out(11616):    <table width=100% bgcolor="#ffffcc"> 
    01-11 16:09:42.425: I/System.out(11616):    <tr> 
    01-11 16:09:42.425: I/System.out(11616):     <td> 
    01-11 16:09:42.425: I/System.out(11616):      <code><pre> 
    01-11 16:09:42.425: I/System.out(11616): &lt;!-- Web.Config Configuration File --&gt; 
    01-11 16:09:42.425: I/System.out(11616): &lt;configuration&gt; 
    01-11 16:09:42.425: I/System.out(11616):  &lt;system.web&gt; 
    01-11 16:09:42.425: I/System.out(11616):   &lt;customErrors mode=&quot;Off&quot;/&gt; 
    01-11 16:09:42.425: I/System.out(11616):  &lt;/system.web&gt; 
    01-11 16:09:42.425: I/System.out(11616): &lt;/configuration&gt;</pre></code> 
    01-11 16:09:42.425: I/System.out(11616):     </td> 
    01-11 16:09:42.425: I/System.out(11616):    </tr> 
    01-11 16:09:42.425: I/System.out(11616):    </table> 
    01-11 16:09:42.425: I/System.out(11616):    <br> 
    01-11 16:09:42.425: I/System.out(11616):    <b>Notes:</b> The current error page you are seeing can be replaced by a custom error page by modifying the &quot;defaultRedirect&quot; attribute of the application&#39;s &lt;customErrors&gt; configuration tag to point to a custom error page URL.<br><br> 
    01-11 16:09:42.425: I/System.out(11616):    <table width=100% bgcolor="#ffffcc"> 
    01-11 16:09:42.425: I/System.out(11616):    <tr> 
    01-11 16:09:42.425: I/System.out(11616):     <td> 
    01-11 16:09:42.425: I/System.out(11616):      <code><pre> 
    01-11 16:09:42.425: I/System.out(11616): &lt;!-- Web.Config Configuration File --&gt; 
    01-11 16:09:42.425: I/System.out(11616): &lt;configuration&gt; 
    01-11 16:09:42.425: I/System.out(11616):  &lt;system.web&gt; 
    01-11 16:09:42.425: I/System.out(11616):   &lt;customErrors mode=&quot;RemoteOnly&quot; defaultRedirect=&quot;mycustompage.htm&quot;/&gt; 
    01-11 16:09:42.425: I/System.out(11616):  &lt;/system.web&gt; 
    01-11 16:09:42.425: I/System.out(11616): &lt;/configuration&gt;</pre></code> 
    01-11 16:09:42.425: I/System.out(11616):     </td> 
    01-11 16:09:42.425: I/System.out(11616):    </tr> 
    01-11 16:09:42.425: I/System.out(11616):    </table> 
    01-11 16:09:42.425: I/System.out(11616):    <br> 
    01-11 16:09:42.425: I/System.out(11616):  </body> 
    01-11 16:09:42.425: I/System.out(11616): </html> 
    01-11 16:09:42.445: I/System.out(11616): inside dialoge box 
+0

'responseEntity'(' EntityUtils.toString(HttpEntity) 'を使用)の内容を印刷して質問に添付できますか? – Jens

+0

私はresponseEntityの内容を追加しました。 – user1142637

+0

あなたのアンドロイドコードに問題はありません。ウェブサービスがクラッシュしています。サーバーのログを確認する方がよいでしょう。 – Jens

答えて

0

エラーは、XMLに問題があることを示しています。

まず、ネットワークからの正しい返信を確認する必要があります。 HTTPレスポンスstatus codeを見てください:

if(response.getStatusLine().getStatusCode() == 200){ 
    // it's ok, proceed with parsing 
} else { 
    // som error: retry, notify user, etc.. 
} 

私の推測では、あなたがlocalhost(= 127.0.0.1)にアクセスしようとしているということです。代わりに10.0.2.2を使用してください。

更新: 間違ったアドレスまたはポートが間違った応答コードではない例外を生成します。 XMLには何らかの問題があるはずです。たぶんエンコードの問題?問題のXMLをここに投稿できますか?

+0

など、応答しないホスト(たとえば、localhost)に接続するか、間違ったポートを使用すると、HTTPステータスコードではなく例外が発生します。 – Jens

+0

true、回答を修正します –

0

よく形成されない(無効なトークン)は通常の方法に従うことによって、あなたの応答XML文字列をチェックし、不正な応答XMLによる結果:

HttpEntity responseEntity = response.getEntity();
String responseString = EntityUtils.convertStreamtoString(responseEntity);

この文字列に特殊文字(たとえば '&')があるかどうかを確認してください。存在する場合は、これらの文字を置き換えます。

+0

ありがとう、私はデバイス上のWebサービスからデータを取得中にサーバーエラーを取得していますが、私はエミュレータで正常にデータを取得することができます。 – user1142637

+0

OK、デバイス側からの接続を受け付けないサーバー側アプリケーションの特定の設定が必要かどうか、またはデバイス経由でWebサービスにアクセスするときにサーバーに特別なパラメータを送信する必要があるかどうかを確認する必要がありますあなたはエミュレータでプロキシの背後にあるネットワークにアクセスするかもしれません。 – jeet

関連する問題