【发布时间】:2014-01-27 06:45:32
【问题描述】:
我正在使用以下 url 登录到 android 应用程序
http://182.18.133.88/php/gprs_request.php?cmd=balance&username=xxxxx&password=xxxxx.
每当我在网络浏览器中调用这个 url 时,返回的 xml 都是这样的。
<time>27.01.2014 11:54:54 AM</time>
<result>true</result>
<message>
Your Credit Current Balance is 100.00. Please Recharge Soon.
</message>
</root>
所以我正在使用 sax parser 解析这个特定的 xml 文件。假设如果结果为真,则用户应该登录到应用程序。它在 Android 4.0 及更高版本中完美运行。我在 4.1.2 中对其进行了测试,它运行良好,但我在 android 2.3.6 设备上运行此应用程序会得到以下系统错误日志。
01-27 11:46:03.562: W/System.err(18991): java.io.FileNotFoundException: http://182.18.133.88/php/gprs_request.php?cmd=balance&username=RTxxxx&password=yyyy=balance&username=RTxxxx&password=yyyy
01-27 11:46:03.570: W/System.err(18991): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:521)
01-27 11:46:03.570: W/System.err(18991): at java.net.URL.openStream(URL.java:645)
01-27 11:46:03.570: W/System.err(18991): at com.androidapp.paraservices.common.WebserviceCall.doInBackground(WebserviceCall.java:51)
01-27 11:46:03.570: W/System.err(18991): at com.androidapp.paraservices.common.WebserviceCall.doInBackground(WebserviceCall.java:1)
01-27 11:46:03.570: W/System.err(18991): at android.os.AsyncTask$2.call(AsyncTask.java:185)
01-27 11:46:03.570: W/System.err(18991): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
01-27 11:46:03.570: W/System.err(18991): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
01-27 11:46:03.570: W/System.err(18991): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
01-27 11:46:03.578: W/System.err(18991): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
01-27 11:46:03.578: W/System.err(18991): at java.lang.Thread.run(Thread.java:1019)
01-27 11:46:03.578: D/LOGINACTIVITY(18991): result:false
01-27 11:46:03.601: W/InputManagerService(1511): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@409b4e70
我正在从android代码中调用和解析这样的url。
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
URL sourceUrl = new URL(params[0]);
LoginHandler myXMLHandler = new LoginHandler(getApplicationContext());
xr.setContentHandler(myXMLHandler);
xr.parse(new InputSource(sourceUrl.openStream()));
我不知道到底发生了什么。请给我前进的一步来完成这件事。提前谢谢。
【问题讨论】:
-
检查这个线程,看看它是否有帮助:stackoverflow.com/questions/9365829/…
-
您应该确保您可以连接到182.18.133.88/php/…。通过您的手机或模拟器。检查您在 Android Manifest 中的权限并检查您的 URL
-
嗨,杰克,权限已添加到清单中。但问题是我从 android 2.3.6 浏览器输入该 url,它给出的结果类似于字符串。当我从 web 浏览器和 android 4.1.2 输入 url浏览器它给出的结果就像我与你分享的 xml。