我使用以下网址登录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.suppose解析这个特定的xml文件,如果结果为true,则用户应该登录到application.It在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()));
我不知道到底发生了什么事情。请给我前进的步骤来完成事情。提前谢谢。
答案 0 :(得分:0)
当Web服务器返回404时发生AFAIK,发生FileNotFoundException。
我的第一个想法是尝试不同的网址,例如谷歌,看看是否至少返回了一些东西。 (它将再次是404 / FileNotFoundException,否则它将通过该点。)
更新:使用您的网址,我收到了:
$ curl http://182.18.133.88/php/gprs_request.php?cmd=balance&username=RTxxxx&password=yyyy=balance&username=RTxxxx&password=yyyy
[1] 29354
[2] 29355
[3] 29356
[4] 29357
[2] Done username=RTxxxx
$ <?xml version="1.0" encoding="UTF-8" ?>
<root><time>27.01.2014 13:03:32 PM</time>
<result>false</result>
<message>Username Not Provided</message>
答案 1 :(得分:0)
根据日志消息,您似乎已经使用了实际的URL中的请求参数乱码。
http://182.18.133.88/php/gprs_request.php?cmd=balance&username=RTXXXX&password=YYYYcmd=balance&username=RTXXXX&password=YYYY
重复用户名和密码....