我搜索了Android开发的良好REST/HTTP客户端,但没有找到符合我需求的东西。Android应用程序和REST API
现在我有一个问题。有没有一种很好的方法来重用android项目中的HTTP客户端对象?
这将是很好,如果有一个集中的地方(也许静态类?)来访问的HttpClient做请求(异步)...
我怎样才能做到这一点在Android项目?
同样的事情为我的凭据。 (我使用基本身份验证,并且不希望从活动凭据传递到活动)
我搜索了Android开发的良好REST/HTTP客户端,但没有找到符合我需求的东西。Android应用程序和REST API
现在我有一个问题。有没有一种很好的方法来重用android项目中的HTTP客户端对象?
这将是很好,如果有一个集中的地方(也许静态类?)来访问的HttpClient做请求(异步)...
我怎样才能做到这一点在Android项目?
同样的事情为我的凭据。 (我使用基本身份验证,并且不希望从活动凭据传递到活动)
我建议你RoboSpice:
RoboSpice是一个模块化的Android库,使得编写异步 网络请求容易。
它有一个缓存管理器,并作为服务,这对我来说,比普通的AsyncTasks更好。
https://github.com/octo-online/robospice
此外,你应该不触摸R类,它会自动从您的ressources建。
<超级大胆的百万感叹>>“你不应该碰R类”> – FoamyGuy 2013-03-09 22:04:27
我建议您查看
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();
}
}
正如RoboSpice所说的是一个非常好的选择。如果您只想保持本地资源与远程数据同步,则可以使用RestDroid这是一个“资源导向”库来处理异步REST请求。
你是否提供服务JSON内容的REST服务? – Rocel 2013-03-09 21:48:25
是的,我使用JSON内容。顺便说一句:对不起,我不是指R类(我的意思是资源,但他们是XML文件...所以...:P) – user437899 2013-03-09 22:13:17