【问题标题】:File Not Found Exception From HTTP Webservice URL来自 HTTP Web 服务 URL 的文件未找到异常
【发布时间】: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。

标签: java android


【解决方案1】:

根据日志消息,您实际上使用 ... 的 URL 中的请求参数看起来像乱码。

http://182.18.133.88/php/gprs_request.php?cmd=balance&username=RTXXXX&password=YYYYcmd=balance&username=RTXXXX&password=YYYY

用户名和密码重复......

【讨论】:

  • 但它是如何在 android 4.0 及更高版本中工作的。如果 url 的问题意味着它在任何地方都不起作用。无论如何我在你的建议之后测试了它并在调用它之前打印了 url 显示正确的 url .
  • 对不起,斯蒂芬,我认为那是其他 logcat。刚才我再次检查,但它显示了单个用户名和密码..
  • 请在两个 Android 版本上打印 URL 并在此处发布。我收到了&lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;root&gt;&lt;time&gt;27.01.2014 13:03:32 PM&lt;/time&gt; &lt;result&gt;false&lt;/result&gt; &lt;message&gt;Username Not Provided&lt;/message&gt; &lt;/root&gt;,你的 URL 在 curl 中。
【解决方案2】:

当 Web 服务器返回 404 时,AFAIK 会发生 FileNotFoundException。

我的第一个想法是尝试不同的 URL,例如谷歌,看看是否至少返回了一些东西。 (它会再次出现 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>

【讨论】:

  • 每当我调用“www.google.com” url 而不是我的 url 时,它不会获取文件未找到异常。我认为它的调用并获取解析异常。我能做什么我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-10
相关资源
最近更新 更多