最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】Android中使用Android Asynchronous Http Client结果无法执行到onSuccess函数

Android crifan 4313浏览 0评论

【问题】

折腾:

【已解决】Android中如何用代码实现去抓取网页

的过程中,去写了代码:

    	String strSongUrl = "http://www.songtaste.com/song/" + strUrlOrId;
    	
    	
    	AsyncHttpClient client = new AsyncHttpClient();
    	//client.get("http://www.google.com", new AsyncHttpResponseHandler() {
    	client.get(strSongUrl, new AsyncHttpResponseHandler() {
    	    @Override
    	    public void onSuccess(String response) {
    	        System.out.println(response);
    	    }
    	});

 

但是结果调试了半天,也没有执行到对应的那行:

System.out.println(response);

即,没有执行到onSuccess函数。

【解决过程】

1.又换了换其他网址:

    	String strSongUrl = "http://www.songtaste.com/song/" + strUrlOrId;
    	
    	String baiduUrl = "http://www.baidu.com";
    	AsyncHttpClient client = new AsyncHttpClient();
    	//client.get("http://www.google.com", new AsyncHttpResponseHandler() {
    	//client.get(strSongUrl, new AsyncHttpResponseHandler() {
    	client.get(baiduUrl, new AsyncHttpResponseHandler() {
    	    @Override
    	    public void onSuccess(String response) {
    	        System.out.println(response);
    	    }
    	});

结果问题依旧。根本没法执行到onSuccess。

2.网上找了半天,也看到了:

Request not callback onSuccess() handler

但是很明显,我这里就是普通的string,所以应该用AsyncHttpResponseHandler而不是JsonHttpResponseHandler,但是结果就是运行不到onSuccess。

其中,我当前所用AVD是Android 4.2的。

3.也看了之前的某个解释,说是只有访问网络,返回的状态码是200时,才会执行到onSuccess函数的。

但是此处,不知道为何,始终无法执行到对应的onSuccess。

 

【总结】

原因未知。

貌似是Android Asynchronous Http Client和Android 4.2不够兼容?

感觉也不像啊。


【后记】

结果后来证实,实际上是之前一些参数配置,环境设置,没弄好,导致与在当前的UI线程中,去访问网络,所以出现异常了,所以无法正常返回,所以才无法执行到onSuccess的。

关于如何正确配置,使得可以访问网络,抓取网页,详情可参考:

【已解决】Android中如何用代码实现去抓取网页

转载请注明:在路上 » 【已解决】Android中使用Android Asynchronous Http Client结果无法执行到onSuccess函数

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 我也是出现无法调用onSuccess,麻烦问一下怎么解决的?
    xiaoxia4年前 (2021-01-12)回复
88 queries in 0.187 seconds, using 22.07MB memory