REST 增加 @RestBody 特性, 获取请求内容, 参数可以是String 或 byte[]

This commit is contained in:
Redkale
2017-05-10 23:35:47 +08:00
parent 6daa45ff05
commit 6676c3fd37
6 changed files with 103 additions and 4 deletions

View File

@@ -32,6 +32,9 @@ public interface HttpRequestDesc {
//获取请求内容的UTF-8编码字符串
public String getBodyUTF8();
//获取请求内容的byte[]
public byte[] getBody();
//获取文件上传对象
public MultiContext getMultiContext();

View File

@@ -22,6 +22,12 @@ public class HelloEntity {
@RestHeader(name = "hello-res")
private String resname;
@RestBody
private String bodystr;
@RestBody
private byte[] bodys;
@RestAddress
private String clientaddr;
@@ -82,6 +88,22 @@ public class HelloEntity {
this.resname = resname;
}
public String getBodystr() {
return bodystr;
}
public void setBodystr(String bodystr) {
this.bodystr = bodystr;
}
public byte[] getBodys() {
return bodys;
}
public void setBodys(byte[] bodys) {
this.bodys = bodys;
}
@Override
public String toString() {
return JsonFactory.root().getConvert().convertTo(this);

View File

@@ -34,6 +34,8 @@ public class _DynHelloRestServlet2 extends SimpleRestServlet {
HelloEntity bean = req.getJsonParameter(HelloEntity.class, "bean");
bean.setClientaddr(req.getRemoteAddr());
bean.setResname(req.getHeader("hello-res"));
bean.setBodys(req.getBody());
bean.setBodystr(req.getBodyUTF8());
UserInfo user = currentUser(req);
RetResult<HelloEntity> result = service.createHello(user, bean);
resp.finishJson(result);
@@ -57,6 +59,8 @@ public class _DynHelloRestServlet2 extends SimpleRestServlet {
HelloEntity bean = req.getJsonParameter(HelloEntity.class, "bean");
bean.setClientaddr(req.getRemoteAddr());
bean.setResname(req.getHeader("hello-res"));
bean.setBodys(req.getBody());
bean.setBodystr(req.getBodyUTF8());
service.updateHello(bean);
resp.finishJson(RetResult.success());
}