我为Android-Development搜索了良好的REST / HTTP客户端,但我没有找到满足我需求的东西。
现在我有一个问题。有没有在android项目中重用HTTP客户端对象的好方法?
如果有一个中心位置就好了(也许是静态类?)要访问httpclient to do请求(异步)...
我如何在android项目中做到这一点?
我的证书也是一样。(我使用基本身份验证,不希望在活动之间传递凭据)
发布于 2013-03-10 05:58:31
我会推荐你RoboSpice:
RoboSpice是一个模块化的android库,可以轻松编写异步网络请求。
它确实有一个缓存管理器,并作为服务工作,对我来说,这比普通的AsyncTasks更好。
https://github.com/octo-online/robospice
另外,你不应该接触R类,它是从你的资源中自动构建的( not R class )。
发布于 2013-03-10 06:01:27
我建议你去看看
https://github.com/posco2k8/rest_loader_tutorial
我还建议稍微改进一下RESTLoader.RESTResponse data,这样data就是最终的数据,在这种情况下就是List<String>,这样解析就转移到了异步加载器上,并避免了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();
}
}发布于 2013-03-18 19:11:03
如上所述,RoboSpice是一个非常好的选择。如果你想简单地保持本地资源与远程数据同步,你可以使用RestDroid,它是一个“面向资源”的库来处理异步REST请求。
https://stackoverflow.com/questions/15316227
复制相似问题