[
{
courseEngName: "Exercises of Macroeconomics",
courseId: "02530071",
courseName: "宏观经济学习题课",
credits: "0",
setupFor: "",
totalHrs: "30",
weekHrs: "2"
},
{
courseEngName: "Intermediate Macroeconomics",
courseId: "06232300",
courseName: "中级宏观经济学",
credits: "4",
setupFor: "",
totalHrs: "60",
weekHrs: "4"
}
]
/**
* 然后配置restTemplate
*/
static {
restTemplate = new RestTemplate();
//json 消息的处理器 在这里我们使用jackson
MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
ObjectMapper objectMapper = new ObjectMapper();
//忽略不识别的字段
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//单个数值也可当做数组处理
objectMapper.configure(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
//设置json映射器
converter.setObjectMapper(objectMapper);
//设置支持的响应content-Type
converter.setSupportedMediaTypes(Collections.singletonList(new MediaType("text", "javascript")));
restTemplate.getMessageConverters().add(converter);
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
restTemplate.getMessageConverters().add(new FormHttpMessageConverter());
restTemplate.getMessageConverters().add(new ResourceHttpMessageConverter());
}
/**
* 发送get请求获取对象
*
* @param uri
* @param returnType 返回类型
* @param <T>对象类型
* @return
*/
public static <T> T getForObject(String uri, Class<T> returnType) throws RestClientException {
String url = getUrl(uri);
Log.d("http get", url);
HttpEntity<T> httpEntity = new HttpEntity<T>(getHeader());
T data = null;
try {
data = restTemplate.exchange(url, HttpMethod.GET, httpEntity, returnType).getBody();
} catch (Exception e) {
}
return data;
}
/**
* 发送post请求获取对象
* @param uri
* @param object
* @param returnType
* @param <T>
* @return
* @throws RestClientException
*/
public static <T> T postForObject(String uri, T object, Class<T> returnType) throws RestClientException {
String url = getUrl(uri);
HttpEntity<T> httpEntity = new HttpEntity<T>(object, getHeader());
Log.d("http post", url);
return restTemplate.exchange(url, HttpMethod.POST, httpEntity, returnType, object).getBody();
}
/**
* 发送put请求获取对象
* @param uri
* @param object
* @param returnType
* @param <T>
* @return
* @throws RestClientException
*/
public static <T> T putForObject(String uri, T object, Class<T> returnType) throws RestClientException {
HttpEntity<T> httpEntity = new HttpEntity<T>(object, getHeader());
String url = getUrl(uri);
Log.d("http put", url);
return restTemplate.exchange(url, HttpMethod.PUT, httpEntity, returnType).getBody();
}
/**
* 发送delete请求获取对象
* @param uri
* @param returnType
* @param <T>
* @return
* @throws RestClientException
*/
public static <T> T deleteForObject(String uri, Class<T> returnType) throws RestClientException {
HttpEntity<T> httpEntity = new HttpEntity<T>(getHeader());
String url = getUrl(uri);
Log.d("http delete", url);
return restTemplate.exchange(url, HttpMethod.DELETE, httpEntity, returnType).getBody();
}
/**
* 最后按照json格式定义dto类
*/
public class Lesson {
private String courseEngName;
private String courseId;
private String courseName;
private String credits;
private String setupFor;
private String totalHrs;
private String url;
private String weekHrs;
//一定不要覆盖默认构造方法
public Lesson() {
}
public String getCourseEngName() {
return courseEngName;
}
public void setCourseEngName(String courseEngName) {
this.courseEngName = courseEngName;
}
public String getCourseId() {
return courseId;
}
public void setCourseId(String courseId) {
this.courseId = courseId;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public String getCredits() {
return credits;
}
public void setCredits(String credits) {
this.credits = credits;
}
public String getSetupFor() {
return setupFor;
}
public void setSetupFor(String setupFor) {
this.setupFor = setupFor;
}
public String getTotalHrs() {
return totalHrs;
}
public void setTotalHrs(String totalHrs) {
this.totalHrs = totalHrs;
}
public String getWeekHrs() {
return weekHrs;
}
public void setWeekHrs(String weekHrs) {
this.weekHrs = weekHrs;
}
}
dependencies {
//首先使用gradle引入spring for android 库
compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'
//以及json序列化反序列化工具jackson
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.12'
}