【问题标题】:Pulling page content to string android将页面内容拉到字符串 android
【发布时间】:2014-10-31 18:28:18
【问题描述】:

我正在尝试将 php 页面拉到 android 上的字符串。 问题是我无法在尝试之外获取 response_str 变量。 无论我在做什么,它都会返回 null。 URL 返回 1 或 0。

这是我的代码:

public String IsLoggedIn() {
        String url_text = "http://klh-dev.com/lehava/lehava/system/isloggedin.php";
        String response_str = null;
        try {
                HttpClient client = new DefaultHttpClient();
                HttpGet request = new HttpGet(url_text.toString());
                ResponseHandler<String> responseHandler = new BasicResponseHandler();
                response_str = client.execute(request, responseHandler);
        }
        catch (Exception e) {
        }
        return response_str;
}

我得到的错误:

10-31 20:33:27.906: I/chromium(13374): [INFO:CONSOLE(74)] "Uncaught TypeError: Object [object Object] has no method 'n33_scrolly'", source: http://www.klh-dev.com/lehava/lehava/system/js/init.js (74)

谢谢你, 莫尔哈13

【问题讨论】:

  • 您的错误在服务器端。 isloggedin.phphas 错误是由于 init.js 内部缺少方法 n33_scrolly 而导致的。
  • @nem 我不明白为什么会这样。这个页面只返回 0 或 1。你知道是什么原因造成的吗?
  • 可能有很多原因,我没有时间也没有能力从外部调试网页,查看 isloggedin.php 和 init.js`,也许使用 Chrome 中的开发人员控制台或Firefox 和调试工具

标签: java android androidhttpclient


【解决方案1】:

如果您在主线程上执行此操作,那么您可能会收到 NetworkOnMainThreadException。

如果是这种情况,请尝试将代码移动到后台线程,例如使用 AsyncTask。

不要忘记 INTERNET 权限。

试试这个:

   new AsyncTask<Void, Void, Void>(){

        @Override
        protected Void doInBackground(Void... voids) {
            String url_text = "http://klh-dev.com/lehava/lehava/system/isloggedin.php";
            String response_str = null;
            try {
                HttpClient client = new DefaultHttpClient();

                HttpGet request = new HttpGet(url_text.toString());
                ResponseHandler<String> responseHandler = new BasicResponseHandler();
                response_str = client.execute(request, responseHandler);

                Log.v("Response", response_str);
            }
            catch (Exception e) {
                e.printStackTrace();
            }

            return null;
        }
    }.execute();

【讨论】:

  • 你身边发生了什么?您是否检查过日志并没有看到响应?例如,您是否遇到异常?
  • 我真的不知道,我对这部分脚本有很多问题,我在网上尝试了几十个教程,但没有任何效果。如果你能帮助我,我正在尝试创建一个脚本来获取此网页中的布尔值:klh-dev.com/lehava/lehava/system/isloggedin.php 并将其保存到字符串中
  • @user3825694 我已经执行了上面发布的代码,它的值为零。您必须调试代码并告诉我发生了什么,以便我可以帮助您。
  • 在导出之前就给我一个错误..i.gyazo.com/1089640dbe8b0e4788e25abf2cf91a79.png
  • @user3825694 此代码不是方法定义。它必须放在一个方法中。在尝试执行此类任务之前,您需要花更多时间学习编程基础知识。
猜你喜欢
  • 1970-01-01
  • 2015-12-09
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
  • 2012-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多