diff --git a/test/org/redkale/test/http/HttpRequestDesc.java b/test/org/redkale/test/http/HttpRequestDesc.java
index dc3310dd5..4b015e4e1 100644
--- a/test/org/redkale/test/http/HttpRequestDesc.java
+++ b/test/org/redkale/test/http/HttpRequestDesc.java
@@ -6,6 +6,7 @@
package org.redkale.test.http;
import java.io.*;
+import java.lang.reflect.Type;
import java.net.*;
import java.nio.charset.*;
import java.util.*;
@@ -18,24 +19,6 @@ import org.redkale.net.http.*;
*/
public interface HttpRequestDesc {
- //获取请求方法 GET、POST等
- public String getMethod();
-
- //获取协议名 http、https、ws、wss等
- public String getProtocol();
-
- //获取Host的Header值
- public String getHost();
-
- //获取请求内容的长度, 为-1表示内容长度不确定
- public long getContentLength();
-
- //获取Content-Type的header值
- public String getContentType();
-
- //获取Connection的Header值
- public String getConnection();
-
//获取客户端地址IP
public SocketAddress getRemoteAddress();
@@ -67,11 +50,29 @@ public interface HttpRequestDesc {
//获取所有Cookie对象
public java.net.HttpCookie[] getCookies();
+ //获取Cookie值
+ public String getCookie(String name);
+
//获取Cookie值, 没有返回默认值
public String getCookie(String name, String defaultValue);
- //获取Cookie值
- public String getCookie(String name);
+ //获取协议名 http、https、ws、wss等
+ public String getProtocol();
+
+ //获取请求方法 GET、POST等
+ public String getMethod();
+
+ //获取Content-Type的header值
+ public String getContentType();
+
+ //获取请求内容的长度, 为-1表示内容长度不确定
+ public long getContentLength();
+
+ //获取Connection的Header值
+ public String getConnection();
+
+ //获取Host的Header值
+ public String getHost();
//获取请求的URL
public String getRequestURI();
@@ -82,20 +83,9 @@ public interface HttpRequestDesc {
//从prefix之后截取getRequestURI再对"/"进行分隔
public String[] getRequstURIPaths(String prefix);
- //获取请求URL分段中含prefix段的long值
- // 例如请求URL /pipes/record/query/time:1453104341363/id:40
- // 获取time参数: long time = request.getRequstURIPath("time:", 0L);
- public long getRequstURIPath(String prefix, long defaultValue);
-
- //获取请求URL分段中含prefix段的int值
- // 例如请求URL /pipes/record/query/offset:2/limit:50
- // 获取page参数: int offset = request.getRequstURIPath("offset:", 1);
- // 获取size参数: int limit = request.getRequstURIPath("limit:", 20);
- public int getRequstURIPath(String prefix, int defaultValue);
-
- //获取请求URL分段中含prefix段的值
- //例如请求URL /pipes/record/query/name:hello
- //获取name参数: String name = request.getRequstURIPath("name:", "none");
+ // 获取请求URL分段中含prefix段的值
+ // 例如请求URL /pipes/record/query/name:hello
+ // 获取name参数: String name = request.getRequstURIPath("name:", "none");
public String getRequstURIPath(String prefix, String defaultValue);
// 获取请求URL分段中含prefix段的short值
@@ -103,6 +93,43 @@ public interface HttpRequestDesc {
// 获取type参数: short type = request.getRequstURIPath("type:", (short)0);
public short getRequstURIPath(String prefix, short defaultValue);
+ // 获取请求URL分段中含prefix段的short值
+ // 例如请求URL /pipes/record/query/type:a
+ // 获取type参数: short type = request.getRequstURIPath(16, "type:", (short)0); type = 10
+ public short getRequstURIPath(int radix, String prefix, short defvalue);
+
+ // 获取请求URL分段中含prefix段的int值
+ // 例如请求URL /pipes/record/query/offset:2/limit:50
+ // 获取offset参数: int offset = request.getRequstURIPath("offset:", 1);
+ // 获取limit参数: int limit = request.getRequstURIPath("limit:", 20);
+ public int getRequstURIPath(String prefix, int defaultValue);
+
+ // 获取请求URL分段中含prefix段的int值
+ // 例如请求URL /pipes/record/query/offset:2/limit:10
+ // 获取offset参数: int offset = request.getRequstURIPath("offset:", 1);
+ // 获取limit参数: int limit = request.getRequstURIPath(16, "limit:", 20); // limit = 16
+ public int getRequstURIPath(int radix, String prefix, int defaultValue);
+
+ // 获取请求URL分段中含prefix段的float值
+ // 例如请求URL /pipes/record/query/point:40.0
+ // 获取time参数: float point = request.getRequstURIPath("point:", 0.0f);
+ public float getRequstURIPath(String prefix, float defvalue);
+
+ // 获取请求URL分段中含prefix段的long值
+ // 例如请求URL /pipes/record/query/time:1453104341363/id:40
+ // 获取time参数: long time = request.getRequstURIPath("time:", 0L);
+ public long getRequstURIPath(String prefix, long defaultValue);
+
+ // 获取请求URL分段中含prefix段的long值
+ // 例如请求URL /pipes/record/query/time:1453104341363/id:40
+ // 获取time参数: long time = request.getRequstURIPath("time:", 0L);
+ public long getRequstURIPath(int radix, String prefix, long defvalue);
+
+ // 获取请求URL分段中含prefix段的double值
+ // 例如请求URL /pipes/record/query/point:40.0
+ // 获取time参数: double point = request.getRequstURIPath("point:", 0.0);
+ public double getRequstURIPath(String prefix, double defvalue);
+
//获取所有的header名
public String[] getHeaderNames();
@@ -113,10 +140,10 @@ public interface HttpRequestDesc {
public String getHeader(String name, String defaultValue);
//获取指定的header的json值
- public T getJsonHeader(JsonConvert convert, Class clazz, String name);
+ public T getJsonHeader(Type type, String name);
//获取指定的header的json值
- public T getJsonHeader(Class clazz, String name);
+ public T getJsonHeader(JsonConvert convert, Type type, String name);
//获取指定的header的boolean值, 没有返回默认boolean值
public boolean getBooleanHeader(String name, boolean defaultValue);
@@ -124,15 +151,30 @@ public interface HttpRequestDesc {
// 获取指定的header的short值, 没有返回默认short值
public short getShortHeader(String name, short defaultValue);
+ // 获取指定的header的short值, 没有返回默认short值
+ public short getShortHeader(int radix, String name, short defaultValue);
+
+ // 获取指定的header的short值, 没有返回默认short值
+ public short getShortHeader(String name, int defaultValue);
+
+ // 获取指定的header的short值, 没有返回默认short值
+ public short getShortHeader(int radix, String name, int defaultValue);
+
//获取指定的header的int值, 没有返回默认int值
public int getIntHeader(String name, int defaultValue);
- // 获取指定的header的float值, 没有返回默认float值
- public float getFloatHeader(String name, float defaultValue);
+ //获取指定的header的int值, 没有返回默认int值
+ public int getIntHeader(int radix, String name, int defaultValue);
// 获取指定的header的long值, 没有返回默认long值
public long getLongHeader(String name, long defaultValue);
+ // 获取指定的header的long值, 没有返回默认long值
+ public long getLongHeader(int radix, String name, long defaultValue);
+
+ // 获取指定的header的float值, 没有返回默认float值
+ public float getFloatHeader(String name, float defaultValue);
+
//获取指定的header的double值, 没有返回默认double值
public double getDoubleHeader(String name, double defaultValue);
@@ -146,10 +188,10 @@ public interface HttpRequestDesc {
public String getParameter(String name, String defaultValue);
//获取指定的参数json值
- public T getJsonParameter(JsonConvert convert, Class clazz, String name);
+ public T getJsonParameter(Type type, String name);
//获取指定的参数json值
- public T getJsonParameter(Class clazz, String name);
+ public T getJsonParameter(JsonConvert convert, Type type, String name);
//获取指定的参数boolean值, 没有返回默认boolean值
public boolean getBooleanParameter(String name, boolean defaultValue);
@@ -157,18 +199,47 @@ public interface HttpRequestDesc {
//获取指定的参数short值, 没有返回默认short值
public short getShortParameter(String name, short defaultValue);
+ //获取指定的参数short值, 没有返回默认short值
+ public short getShortParameter(int radix, String name, short defaultValue);
+
+ //获取指定的参数short值, 没有返回默认short值
+ public short getShortParameter(int radix, String name, int defaultValue);
+
//获取指定的参数int值, 没有返回默认int值
public int getIntParameter(String name, int defaultValue);
- //获取指定的参数float值, 没有返回默认float值
- public float getFloatParameter(String name, float defaultValue);
+ //获取指定的参数int值, 没有返回默认int值
+ public int getIntParameter(int radix, String name, int defaultValue);
//获取指定的参数long值, 没有返回默认long值
public long getLongParameter(String name, long defaultValue);
+ //获取指定的参数long值, 没有返回默认long值
+ public long getLongParameter(int radix, String name, long defaultValue);
+
+ //获取指定的参数float值, 没有返回默认float值
+ public float getFloatParameter(String name, float defaultValue);
+
//获取指定的参数double值, 没有返回默认double值
public double getDoubleParameter(String name, double defaultValue);
-
+
+ //获取翻页对象 同 getFlipper("flipper", false, 0);
+ public org.redkale.source.Flipper getFlipper();
+
+ //获取翻页对象 同 getFlipper("flipper", needcreate, 0);
+ public org.redkale.source.Flipper getFlipper(boolean needcreate);
+
+ //获取翻页对象 同 getFlipper("flipper", false, maxLimit);
+ public org.redkale.source.Flipper getFlipper(int maxLimit);
+
+ //获取翻页对象 同 getFlipper("flipper", needcreate, maxLimit)
+ public org.redkale.source.Flipper getFlipper(boolean needcreate, int maxLimit);
+
+ //获取翻页对象 http://redkale.org/pipes/records/list/offset:0/limit:20/sort:createtime%20ASC
+ //http://redkale.org/pipes/records/list?flipper={'offset':0,'limit':20, 'sort':'createtime ASC'}
+ //以上两种接口都可以获取到翻页对象
+ public org.redkale.source.Flipper getFlipper(String name, boolean needcreate, int maxLimit);
+
//获取HTTP上下文对象
public HttpContext getContext();
diff --git a/test/org/redkale/test/http/HttpResponseDesc.java b/test/org/redkale/test/http/HttpResponseDesc.java
index eacaf2122..02fd185f8 100644
--- a/test/org/redkale/test/http/HttpResponseDesc.java
+++ b/test/org/redkale/test/http/HttpResponseDesc.java
@@ -10,7 +10,10 @@ import java.lang.reflect.*;
import java.net.*;
import java.nio.*;
import java.nio.channels.*;
+import java.util.*;
+import java.util.function.BiConsumer;
import org.redkale.convert.json.*;
+import org.redkale.net.http.*;
/**
*
@@ -18,6 +21,12 @@ import org.redkale.convert.json.*;
*/
public interface HttpResponseDesc {
+ //增加Cookie值
+ public HttpResponse addCookie(HttpCookie... cookies);
+
+ //增加Cookie值
+ public HttpResponse addCookie(Collection cookies);
+
//设置状态码
public void setStatus(int status);
@@ -28,26 +37,26 @@ public interface HttpResponseDesc {
public String getContentType();
//设置 ContentType
- public void setContentType(String contentType);
+ public HttpResponse setContentType(String contentType);
//获取内容长度
public long getContentLength();
//设置内容长度
- public void setContentLength(long contentLength);
+ public HttpResponse setContentLength(long contentLength);
//设置Header值
- public void setHeader(String name, Object value);
+ public HttpResponse setHeader(String name, Object value);
//添加Header值
- public void addHeader(String name, Object value);
+ public HttpResponse addHeader(String name, Object value);
+
+ //添加Header值
+ public HttpResponse addHeader(Map map);
//跳过header的输出
//通常应用场景是,调用者的输出内容里已经包含了HTTP的响应头信息,因此需要调用此方法避免重复输出HTTP响应头信息。
- public void skipHeader();
-
- //增加Cookie值
- public void addCookie(HttpCookie... cookies);
+ public HttpResponse skipHeader();
//异步输出指定内容
public void sendBody(ByteBuffer buffer, A attachment, CompletionHandler handler);
@@ -73,6 +82,18 @@ public interface HttpResponseDesc {
//将对象以JSON格式输出
public void finishJson(final Object... objs);
+ //将RetResult对象以JSON格式输出
+ public void finishJson(final org.redkale.service.RetResult ret);
+
+ //将RetResult对象以JSON格式输出
+ public void finishJson(final JsonConvert convert, final org.redkale.service.RetResult ret);
+
+ //将对象以JavaScript格式输出
+ public void finishJsResult(String var, Object result);
+
+ //将对象以JavaScript格式输出
+ public void finishJsResult(JsonConvert jsonConvert, String var, Object result);
+
//将指定字符串以响应结果输出
public void finish(String obj);
@@ -102,4 +123,10 @@ public interface HttpResponseDesc {
//将指定文件按响应结果输出
public void finish(File file) throws IOException;
+ //将文件按指定文件名输出
+ public void finish(final String filename, File file) throws IOException;
+
+ //HttpResponse回收时回调的监听方法
+ public void setRecycleListener(BiConsumer recycleListener);
+
}