无法从Android客户端调用API

汤姆·芬特

我有一个烧瓶RESTFUL API,该API可以正常运行并部署到heroku。现在,我需要从我的android应用发出获取请求。我正在使用图书馆来做到这一点。

这是在URL https://thecaffapi.herokuapp.com/api/v1/all_stock上调用API的代码,该代码将JSON数组返回到android客户端:

client.get(baseurl + "all_stock", null, new JsonHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONArray allStock) {
            for (int i = 0; i < allStock.length(); i++) {
                try {
                    JSONObject stockObject = allStock.getJSONObject(i);
                    int id = stockObject.getInt("id");
                    String stockTitle = stockObject.getString("stock_title");
                    int stockNumber = stockObject.getInt("stock_number");
                    Stock stock = new Stock(id, stockTitle, stockNumber);
                    mStockList.add(stock);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }
    });

该行client.get(baseurl + "all_stock", null, new JsonHttpResponseHandler() {已运行,但是onSuccess()方法未运行。

运行该应用程序时,控制台将报告与AsyncHttpClient相关的以下内容:

V/AsyncHttpRH: Progress 216 from 216 (100%)
W/JsonHttpRH: onSuccess(int, Header[], JSONObject) was not overriden, but callback was received

为什么onSuccess()方法没有被覆盖并因此运行?

提前致谢,

汤姆

拉里

onSucess方法的第三个元素是响应应解析到的对象。您的响应不是数组格式,它具有单个名称值对,其中值是数组。因此,您需要改用JSONObject并从中获取数组。

client.get(baseurl + "all_stock", null, new JsonHttpResponseHandler() {
    @Override
    public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
        JSONArray allStock = response.getJSONArray("stock");
        for (int i = 0; i < allStock.length(); i++) {
            try {
                JSONObject stockObject = allStock.getJSONObject(i);
                int id = stockObject.getInt("id");
                String stockTitle = stockObject.getString("stock_title");
                int stockNumber = stockObject.getInt("stock_number");
                Stock stock = new Stock(id, stockTitle, stockNumber);
                mStockList.add(stock);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

指数延迟客户端API调用

从Web API调用客户端

流星Http客户端API调用Gzip解压缩结果JSON无法正常工作

调用onConnectionSuspended(int Cause)后,Google API客户端无法再次连接

如何在Qt的Android客户端代码中调用Google-Cloud-Messaging API?

无法在MQTT客户端中调用message.topic?

Java Feign客户端回退-无法调用回退

PHP-SOAP客户端无法调用HTTPS端点

无法调用该服务,WCF测试客户端?

套接字io客户端无法调用sencha函数

无法连接到 Android Things 中的谷歌 API 客户端

无法在Android Studio中解析Symbol Google API客户端

如何使用Postman客户端调用Twitter API

从浏览器客户端JavaScript调用Easypost API

Blazor(客户端)在不同域上对API的调用

公开网络客户端可以调用的API

在客户端C#上调用rest api

无法安装Web API客户端库

我的桌面应用程序无法调用 API 来使用 apache Oauth 客户端获取令牌

具有devise的Rails API,无法通过客户端的JSON调用运行POST #create方法

Android Socket客户端无法发送和接收消息

无法滚动Android应用使用Java客户端Appium

Ktor客户端MockEngine在Android中无法解析

更新Android Studio后无法导入Google客户端

简单的smack android客户端无法正常工作?

当客户端不在同一IP上时,无法通过客户端调用节点服务器

适用于Android的API客户端

Android客户端和Google App Engine API

如何使客户端的移动IP地址的Android API密钥?