android– 使用loopj SyncHttpClient时的IOException

android– 使用loopj SyncHttpClient时的IOException,第1张

概述我需要在几个区域使用loopj的SyncHttpClient.当我使用AsyncHttpClient时,请求成功返回.当我使用SyncHttpClient时,如此处接受的答案所示:HowtouseloopJSyncHttpClientforsynchronouscalls?,我在onFailure中遇到了一个断点.statusCode为0,errorResponse为null,throwable为jav

我需要在几个区域使用loopj的SynchttpClIEnt.当我使用AsynchttpClIEnt时,请求成功返回.当我使用SynchttpClIEnt时,如此处接受的答案所示:How to use loopJ SyncHttpClient for synchronous calls?,我在onFailure中遇到了一个断点. statusCode为0,errorResponse为null,throwable为java.io.IOException:未处理的异常:null.

这是相关的代码.我再次使用Async时效果很好:

        @R_404_5554@Test.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw v) {//                AsynchttpClIEnt httpClIEnt = new AsynchttpClIEnt();                SynchttpClIEnt httpClIEnt = new SynchttpClIEnt();                httpClIEnt.get("http://10.0.1.6:3000/home/test_endpoint", new JsonhttpResponseHandler() {                    @OverrIDe                    public voID onSuccess(int statusCode, header[] headers, JsONObject response) {                        String stringResponse = response.toString();                    }                    @OverrIDe                    public voID onFailure(int statusCode, header[] headers, Throwable throwable, JsONObject errorResponse) {                        String error = errorResponse.toString();                    }                });                String temp = "got here";            }        });

我正在使用编译’com.loopj.androID:androID-async-http:1.4.9′

解决方法:

当我点击这个时我做了一些调试,我发现loopj正在吃以下异常:

androID.os.networkonmainthreadException

我无法提供详细的堆栈跟踪,因为这个异常似乎没有正确记录(由于某些原因,logcat根本没有提取它)

但是,它位于这里:

AsynchttpRequest.makeRequestWithRetrIEs(AsynchttpRequest.java:203)

我一直在运行我的代码:

Handler handler = new Handler();Runnable r = new Runnable(){  public voID run(){    SynchttpClIEnt clIEnt ....    clIEnt.get(.....); // hit error here  }};

正如您所看到的,我碰巧在Handler.post()方法中运行我的SynchttpClIEnt,但显然实现不算作(非主线程上的网络)

修复它的关键是使用了mikeorr85的代码所包含的“新线程(…)”.像这样……

new Thread(Runnable r = new Runnable(){  public voID run(){    SynchttpClIEnt clIEnt ....    clIEnt.get(.....); // hit error here  }}).start();
总结

以上是内存溢出为你收集整理的android – 使用loopj SyncHttpClient时的IOException全部内容,希望文章能够帮你解决android – 使用loopj SyncHttpClient时的IOException所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1119426.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存