扩展android-volley来开发Android restful client

本文介绍了一个基于 Android-Volley 扩展的简单 HTTP 异步请求类库——PeanutAPI。该库用于封装 API 请求并管理认证头部,支持后台线程处理数据和 UI 更新,提供错误提示。示例代码展示了如何使用 PeanutRequest 进行 GET 请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码分享在osc:http://www.oschina.net/code/snippet_207873_33265

Android Restful Client的介绍

请看Google/IO 2010的视频,年代有些久远了,可能有些不合适,但是仍然有借鉴意义。

关于这个简单的类库

本类库简单的扩展了android-volley这个http异步请求类库,具体来说,提供以下几个功能

  1. 在后台线程进行http请求

  2. api的封装和认证头部的管理

  3. 在后台线程对获得的数据进一步处理,比如持久化到本地的sqlite(可选操作)

  4. 更新ui,在ui线程(可选)

  5. 在ui线程提示请求过程中出现的错误,如果出错了

例子

public class TestActivity extends Activity {
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // 初始化你的认证header,如果有
    // PeanutAPI.init(header);
    int method = Request.Method.GET;
    String uri = "http://example.org/path";
    boolean authRequired = true;
    Map<String, String> params = null;
    PeanutAPI api = new PeanutAPI(method, uri, authRequired, params);
    Volley.newRequestQueue(this).add(new PeanutRequest(
        this,
        api,
        new PeanutProcessor<JSONObject>() { // 可选,如果需要对data进一步处理,此方法调用在后台线程
          @Override
          public void process(Context context, JSONObject data) throws Exception {
            // 对json object进一步处理,比如
            // ContentValues values = convert(data);
            // context.getContentResolver().insert(...);
          }
        },
        new Response.Listener<JSONObject>() { // 可选,如果需要更新ui
          @Override
          public void onResponse(JSONObject response) {
            Toast.makeText(TestActivity.this, response.toString(), Toast.LENGTH_SHORT).show();
          }
        },
        new Response.ErrorListener() { // 必选,告知用户请求出了问题
          @Override
          public void onErrorResponse(VolleyError error) {
             Toast.makeText(TestActivity.this, error.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
          }
        }
    ));
  }}

其它

除了json object,peanut还提供了json array的处理,基本类似,事实上,你可以任意扩展volley的Request来满足自己的需要,可以参考PeanutRequest的实现


转载于:https://my.oschina.net/longkai/blog/200345

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值