分享一个Android和java调用RESTful Web服务的利器Resting
当我们调用Web服务,往往是最终目标是取HTTP响应,将其转化为将在应用中呈现的值对象。Resting可以用来实现这一功能。
Resting,在Java的一个轻量级的REST框架,可用于调用一个RESTful Web服务,并转换成响应来自客户端应用程序定制的Java对象。由于它的简单,resting是适合Android等手持设备。
resting目标
•暴露简单的get(),post(),put()和delete()方法来消费REST服务
•支持像JSON,XML,ATOM和YAML所有常用的MIME类型
•启用的REST风格的Web服务HTTP和HTTPS(SSL)调用
•支持基本身份验证
•支持代理
•支持转型过程中任意复杂的编组数据和解组
•支持在REST请求集合定制代表性
•轻量级,操作简单,快捷。非常适用于Android系统。
1.导入相应的java包:
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.http.Header;
import org.apache.http.message.BasicHeader;
import com.google.resting.Resting;
import com.google.resting.RestingBuilder;
import com.google.resting.atom.AtomFeed;
import com.google.resting.component.Alias;
import com.google.resting.component.EncodingTypes;
import com.google.resting.component.RequestParams;
import com.google.resting.component.Verb;
import com.google.resting.component.content.ContentType;
import com.google.resting.component.impl.BasicRequestParams;
import com.google.resting.component.impl.ServiceResponse;
import com.google.resting.component.impl.json.JSONAlias;
import com.google.resting.component.impl.json.JSONRequestParams;
import com.google.resting.component.impl.xml.XMLAlias;
import com.google.resting.transform.impl.JSONTransformer;
import com.google.resting.transform.impl.XMLTransformer;
import com.google.resting.util.ReflectionUtil;
2.初始化RequestParams,调用静态方法Resting.getByJSON并且转成相应对象:
public void testGetByJSON() {
System.out.println("\ntestGetByJSON\n-----------------------------");
RequestParams jsonParams = new JSONRequestParams();
jsonParams.add("key", "fdb3c385a8d22d174cafeadc6d4c1405b08d5609");
try {
List<Product> products=Resting.getByJSON("http://api.zappos.com/Product/7515478",80,jsonParams, Product.class, "product");
System.out.println("[RestingTest::getByJSON] The product detail is "+products.get(0).toString());
} catch (Exception e) {
e.printStackTrace();
}
}
public class Product {
private int productId;
public int getProductId(){
return productId;
}
public String toString(){
return "Product id="+productId;
}
}
3.Resting里的静态方法支持:get(),post(),put()和delete()
同时支持getbyJSON,getbyXML,getbyATOM和getbyYAML
例子请看源码下载里的resting.zip\resting\resting\src\test\com\google\resting
另外一些简单介绍这个组件如何使用的Wiki页面(可以使用eclipse/vs/notepad++等打开):resting.zip\wiki
初始源码:http://code.google.com/p/resting/
源码下载:http://download.csdn.net/detail/yangzhenping/8398281