This commit is contained in:
Redkale
2020-09-09 10:16:19 +08:00
parent 3fcc478356
commit ee56ffa346
2 changed files with 39 additions and 7 deletions

View File

@@ -5,6 +5,7 @@
*/
package org.redkale.mq;
import org.redkale.convert.*;
import org.redkale.net.http.*;
/**
@@ -20,13 +21,45 @@ public class HttpMessageRequest extends HttpRequest {
protected MessageRecord message;
protected Convert diyConvert;
public HttpMessageRequest(HttpContext context, MessageRecord message) {
super(context, message.decodeContent(HttpSimpleRequestCoder.getInstance()));
this.message = message;
this.currentUserid = message.getUserid();
if (message.getFormat() != ConvertType.JSON) {
this.diyConvert = ConvertFactory.findConvert(message.getFormat());
}
}
public void setRequestURI(String uri) {
this.requestURI = uri;
}
@Override
public <T> T getBodyJson(java.lang.reflect.Type type) {
if (diyConvert != null) return (T) diyConvert.convertFrom(type, getBody());
return super.getBodyJson(type);
}
@Override
public String getParameter(String name) {
if (diyConvert != null) return (String) diyConvert.convertFrom(String.class, getBody());
return super.getParameter(name);
}
@Override
public String getParameter(String name, String defaultValue) {
if (diyConvert != null) {
String val = (String) diyConvert.convertFrom(String.class, getBody());
return val == null ? defaultValue : val;
}
return super.getParameter(name, defaultValue);
}
@Override
public <T> T getJsonParameter(java.lang.reflect.Type type, String name) {
if (diyConvert != null) return (T) diyConvert.convertFrom(type, getBody());
return super.getJsonParameter(type, name);
}
}

View File

@@ -14,7 +14,7 @@ import java.nio.channels.Channels;
import java.nio.charset.*;
import java.util.*;
import java.util.logging.Level;
import org.redkale.convert.ConvertDisabled;
import org.redkale.convert.*;
import org.redkale.convert.json.JsonConvert;
import org.redkale.net.*;
import org.redkale.util.*;
@@ -559,16 +559,15 @@ public class HttpRequest extends Request<HttpContext> {
* 获取请求内容的JavaBean对象
*
* @param <T> 泛型
* @param convert JsonConvert
* @param convert Convert
* @param type 类型
*
* @return 内容
*/
public <T> T getBodyJson(JsonConvert convert, java.lang.reflect.Type type) {
String str = array.toString(StandardCharsets.UTF_8);
if (str == null || str.isEmpty()) return null;
return convert.convertFrom(type, str);
}
public <T> T getBodyJson(Convert convert, java.lang.reflect.Type type) {
if (array.size() < 1) return null;
return (T) convert.convertFrom(type, array.directBytes());
}
/**
* 获取请求内容的byte[]