首先感谢下 黄勇 大神 写出这么好用的javaweb框架。
Smart Framework详细内容请点击:http://www.oschina.net/p/smart-framework
首先使用smart建立Rest服务的方法,个人分析可用两种方式:
第一种,直接在service层上创建Rest服务
服务端:
@Service
@Rest("/userservice")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class UserServiceImpl implements UserService {
@POST
@Path("/login/{username}/{password}")
@Override
public void login(@PathParam("username") String username, @PathParam("password") String password) {
SecurityHelper.login(username, password, false);
}
}
android客户端:
public static String sendRequest(HttpRequestMethod methodEnum,
String url, Map<String, String> paramsMap) {
String result = null;
HttpUriRequest req = methodEnum.createRequest(url);
req.addHeader("Content-Type",MediaType.APPLICATION_JSON);
try {
if (paramsMap != null) {
JSONObject jsonObj = new JSONObject(paramsMap);
StringEntity entity = new StringEntity(jsonObj.toString());
((HttpEntityEnclosingRequest)req).setEntity(entity);
}
HttpResponse httpResp = httpClient.execute(req);
if (httpResp.getStatusLine().getStatusCode() == HTTP_200) {
result = EntityUtils.toString(httpResp.getEntity(), DEFAULT_LOCAL_ENCODE);
} else {
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static String login(String username ,String password){
return sendRequest(HttpRequestMethod.HttpPost,RootUrl+"/rest/userservice/login/"+username+"/"+password,null);
}
第二中是在action层上建立Rest服务,这种其实不用建立Rest服务,直接调用action地址即可
直接上android端代码
public static String sendRequest(HttpRequestMethod methodEnum,
String url, Map<String, String> paramsMap) {
String result = null;
HttpUriRequest req = methodEnum.createRequest(url);
try {
if (paramsMap != null) {
<span style="color:#ff0000;"><strong>((HttpEntityEnclosingRequest)req).setEntity(new UrlEncodedFormEntity(
keyValueToValuePairList(paramsMap), DEFAULT_REMOTE_ENCODE));</strong></span>
}
HttpResponse httpResp = httpClient.execute(req);
if (httpResp.getStatusLine().getStatusCode() == HTTP_200) {
result = EntityUtils.toString(httpResp.getEntity(), DEFAULT_LOCAL_ENCODE);
} else {
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static String login(String username ,String password){
Map<String, String> paramsMap = new HashMap<String, String>();
paramsMap.put("username", "admin");
paramsMap.put("password", "admin");
return sendRequest(HttpRequestMethod.HttpPost,RootUrl+"/login,paramsMap);
}