当前位置:  开发笔记 > 编程语言 > 正文

使用AsyncTask时应该如何处理HTTP响应代码?

如何解决《使用AsyncTask时应该如何处理HTTP响应代码?》经验,为你挑选了0个好方法。

我正在创建一个Android应用程序,它接受用户输入,尝试使用指定的输入建立与API URL的连接并检索数据并显示它.现在我已经能够完成上述所有工作,但是如果用户输入某些内容并且它不存在,我的应用程序可能会因为NPE(空指针异常)而崩溃.

我正在使用的API向我显示了可能发生的响应错误列表,但我不确定如何处理或实现将这些响应错误考虑在内的功能.

目前我的扩展AsyncTask类有以下参数:String,Void,JSONObject和以下代码是我在doInBackground方法中的代码.

URL url = new URL(params[0]);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.connect();

int statusCode = urlConnection.getResponseCode();
switch (statusCode) {
    case 400:
    return "Error 400 - Bad request.";
    case 401:
    return "Error 401 - Unauthorized request.";
}

我无法返回一个String,因为我的AsyncTask参数返回一个JSONObject.我可以改变它,所以它确实返回一个字符串,但我认为这不是处理响应错误的正确逻辑方式.

现在,如果API响应代码是404(找不到数据),我不希望应用程序崩溃,因为它无法返回JSONObject,而是我希望它继续下一个片段并显示最少的信息.

那么当我的方法返回JSONObject时,如何处理响应错误呢?

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有