2013-03-09 47 views
1

我搜索了Android开发的良好REST/HTTP客户端,但没有找到符合我需求的东西。Android应用程序和REST API

现在我有一个问题。有没有一种很好的方法来重用android项目中的HTTP客户端对象?

这将是很好,如果有一个集中的地方(也许静态类?)来访问的HttpClient做请求(异步)...

我怎样才能做到这一点在Android项目?

同样的事情为我的凭据。 (我使用基本身份验证,并且不希望从活动凭据传递到活动)

+0

你是否提供服务JSON内容的REST服务? – Rocel 2013-03-09 21:48:25

+0

是的,我使用JSON内容。顺便说一句:对不起,我不是指R类(我的意思是资源,但他们是XML文件...所以...:P) – user437899 2013-03-09 22:13:17

回答

2

我建议你RoboSpice:

RoboSpice是一个模块化的Android库,使得编写异步 网络请求容易。

它有一个缓存管理器,并作为服务,这对我来说,比普通的AsyncTasks更好。

https://github.com/octo-online/robospice

此外,你应该触摸R类,它会自动从您的ressources建。

+0

<超级大胆的百万感叹>>“你不应该碰R类” – FoamyGuy 2013-03-09 22:04:27

1

我建议您查看

https://github.com/posco2k8/rest_loader_tutorial


我也建议小的改进变化RESTLoader.RESTResponse data从而data在这种情况下,最终数据List<String>从而解析移到acync装载机避免UI线程上的延迟。添加指出改变建议的代码。

@Override 
public void onLoadFinished(Loader<RESTLoader.RESTResponse> loader, RESTLoader.RESTResponse data) { 
    int code = data.getCode(); 
    String json = data.getData(); // <-- (change) this should be the final data 

    // Check to see if we got an HTTP 200 code and have some data. 
    if (code == 200 && !json.equals("")) { 

     // For really complicated JSON decoding I usually do my heavy lifting 
     // Gson and proper model classes, but for now let's keep it simple 
     // and use a utility method that relies on some of the built in 
     // JSON utilities on Android. 
     List<String> tweets = getTweetsFromJson(json); // <-- (change) that parse move to loader 

     // Load our list adapter with our Tweets. 
     mAdapter.clear(); 
     for (String tweet : tweets) { 
      mAdapter.add(tweet); 
     } 
    } 
    else { 
     Toast.makeText(this, "Failed to load Twitter data. Check your internet settings.", Toast.LENGTH_SHORT).show(); 
    } 
} 
0

正如RoboSpice所说的是一个非常好的选择。如果您只想保持本地资源与远程数据同步,则可以使用RestDroid这是一个“资源导向”库来处理异步REST请求。

相关问题