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; package org.redkale.mq;
import org.redkale.convert.*;
import org.redkale.net.http.*; import org.redkale.net.http.*;
/** /**
@@ -20,13 +21,45 @@ public class HttpMessageRequest extends HttpRequest {
protected MessageRecord message; protected MessageRecord message;
protected Convert diyConvert;
public HttpMessageRequest(HttpContext context, MessageRecord message) { public HttpMessageRequest(HttpContext context, MessageRecord message) {
super(context, message.decodeContent(HttpSimpleRequestCoder.getInstance())); super(context, message.decodeContent(HttpSimpleRequestCoder.getInstance()));
this.message = message; this.message = message;
this.currentUserid = message.getUserid(); this.currentUserid = message.getUserid();
if (message.getFormat() != ConvertType.JSON) {
this.diyConvert = ConvertFactory.findConvert(message.getFormat());
}
} }
public void setRequestURI(String uri) { public void setRequestURI(String uri) {
this.requestURI = 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.nio.charset.*;
import java.util.*; import java.util.*;
import java.util.logging.Level; import java.util.logging.Level;
import org.redkale.convert.ConvertDisabled; import org.redkale.convert.*;
import org.redkale.convert.json.JsonConvert; import org.redkale.convert.json.JsonConvert;
import org.redkale.net.*; import org.redkale.net.*;
import org.redkale.util.*; import org.redkale.util.*;
@@ -559,15 +559,14 @@ public class HttpRequest extends Request<HttpContext> {
* 获取请求内容的JavaBean对象 * 获取请求内容的JavaBean对象
* *
* @param <T> 泛型 * @param <T> 泛型
* @param convert JsonConvert * @param convert Convert
* @param type 类型 * @param type 类型
* *
* @return 内容 * @return 内容
*/ */
public <T> T getBodyJson(JsonConvert convert, java.lang.reflect.Type type) { public <T> T getBodyJson(Convert convert, java.lang.reflect.Type type) {
String str = array.toString(StandardCharsets.UTF_8); if (array.size() < 1) return null;
if (str == null || str.isEmpty()) return null; return (T) convert.convertFrom(type, array.directBytes());
return convert.convertFrom(type, str);
} }
/** /**