This commit is contained in:
@@ -5,10 +5,12 @@
|
|||||||
*/
|
*/
|
||||||
package org.redkale.mq;
|
package org.redkale.mq;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
import org.redkale.convert.ConvertType;
|
import org.redkale.convert.ConvertType;
|
||||||
|
import org.redkale.convert.json.JsonConvert;
|
||||||
import org.redkale.net.http.*;
|
import org.redkale.net.http.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -95,6 +97,20 @@ public class HttpMessageClient extends MessageClient {
|
|||||||
produceMessage(topic, convertType, userid, groupid, request, null);
|
produceMessage(topic, convertType, userid, groupid, request, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final <T> CompletableFuture<T> sendMessage(HttpSimpleRequest request, Type type) {
|
||||||
|
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, 0, null, request, null).thenApply((HttpResult<byte[]> httbs) -> {
|
||||||
|
if (httbs == null || httbs.getResult() == null) return null;
|
||||||
|
return JsonConvert.root().convertFrom(type, httbs.getResult());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public final <T> CompletableFuture<T> sendMessage(int userid, HttpSimpleRequest request, Type type) {
|
||||||
|
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, userid, null, request, null).thenApply((HttpResult<byte[]> httbs) -> {
|
||||||
|
if (httbs == null || httbs.getResult() == null) return null;
|
||||||
|
return JsonConvert.root().convertFrom(type, httbs.getResult());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public final CompletableFuture<HttpResult<byte[]>> sendMessage(HttpSimpleRequest request) {
|
public final CompletableFuture<HttpResult<byte[]>> sendMessage(HttpSimpleRequest request) {
|
||||||
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, 0, null, request, null);
|
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, 0, null, request, null);
|
||||||
}
|
}
|
||||||
@@ -103,6 +119,10 @@ public class HttpMessageClient extends MessageClient {
|
|||||||
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, 0, null, request, counter);
|
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, 0, null, request, counter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final CompletableFuture<HttpResult<byte[]>> sendMessage(int userid, HttpSimpleRequest request) {
|
||||||
|
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, userid, null, request, null);
|
||||||
|
}
|
||||||
|
|
||||||
public final CompletableFuture<HttpResult<byte[]>> sendMessage(int userid, String groupid, HttpSimpleRequest request) {
|
public final CompletableFuture<HttpResult<byte[]>> sendMessage(int userid, String groupid, HttpSimpleRequest request) {
|
||||||
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, userid, groupid, request, null);
|
return sendMessage(generateHttpReqTopic(request, null), ConvertType.JSON, userid, groupid, request, null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ package org.redkale.net.http;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import org.redkale.convert.ConvertColumn;
|
import org.redkale.convert.ConvertColumn;
|
||||||
import org.redkale.convert.json.JsonConvert;
|
import org.redkale.convert.json.JsonConvert;
|
||||||
import org.redkale.util.Comment;
|
import org.redkale.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HttpRequest的缩减版, 只提供部分字段
|
* HttpRequest的缩减版, 只提供部分字段
|
||||||
@@ -50,6 +50,18 @@ public class HttpSimpleRequest implements java.io.Serializable {
|
|||||||
@Comment("http body信息")
|
@Comment("http body信息")
|
||||||
protected byte[] body; //对应HttpRequest.array
|
protected byte[] body; //对应HttpRequest.array
|
||||||
|
|
||||||
|
public static HttpSimpleRequest create(String requestURI) {
|
||||||
|
return new HttpSimpleRequest().requestURI(requestURI);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HttpSimpleRequest create(String requestURI, Object... params) {
|
||||||
|
HttpSimpleRequest req = new HttpSimpleRequest().requestURI(requestURI);
|
||||||
|
for (Map.Entry en : Utility.ofMap(params).entrySet()) {
|
||||||
|
req.param(en.getKey().toString(), en.getValue());
|
||||||
|
}
|
||||||
|
return req;
|
||||||
|
}
|
||||||
|
|
||||||
public HttpSimpleRequest requestURI(String requestURI) {
|
public HttpSimpleRequest requestURI(String requestURI) {
|
||||||
this.requestURI = requestURI;
|
this.requestURI = requestURI;
|
||||||
return this;
|
return this;
|
||||||
@@ -118,7 +130,7 @@ public class HttpSimpleRequest implements java.io.Serializable {
|
|||||||
public HttpSimpleRequest param(String key, Object value) {
|
public HttpSimpleRequest param(String key, Object value) {
|
||||||
if (value == null) return this;
|
if (value == null) return this;
|
||||||
if (this.params == null) this.params = new HashMap<>();
|
if (this.params == null) this.params = new HashMap<>();
|
||||||
this.params.put(key, JsonConvert.root().convertTo(value));
|
this.params.put(key, value instanceof CharSequence ? value.toString() : JsonConvert.root().convertTo(value));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,12 +5,13 @@
|
|||||||
*/
|
*/
|
||||||
package org.redkale.service;
|
package org.redkale.service;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import org.redkale.convert.*;
|
import org.redkale.convert.*;
|
||||||
import org.redkale.convert.json.*;
|
import org.redkale.convert.json.*;
|
||||||
import org.redkale.util.Utility;
|
import org.redkale.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用的结果对象,在常见的HTTP+JSON接口中返回的结果需要含结果码,错误信息,和实体对象。 <br>
|
* 通用的结果对象,在常见的HTTP+JSON接口中返回的结果需要含结果码,错误信息,和实体对象。 <br>
|
||||||
@@ -27,6 +28,15 @@ import org.redkale.util.Utility;
|
|||||||
*/
|
*/
|
||||||
public class RetResult<T> {
|
public class RetResult<T> {
|
||||||
|
|
||||||
|
public static final Type TYPE_RET_INTEGER = new TypeToken<RetResult<Integer>>() {
|
||||||
|
}.getType();
|
||||||
|
|
||||||
|
public static final Type TYPE_RET_LONG = new TypeToken<RetResult<Long>>() {
|
||||||
|
}.getType();
|
||||||
|
|
||||||
|
public static final Type TYPE_RET_STRING = new TypeToken<RetResult<String>>() {
|
||||||
|
}.getType();
|
||||||
|
|
||||||
@ConvertColumn(index = 1)
|
@ConvertColumn(index = 1)
|
||||||
protected int retcode;
|
protected int retcode;
|
||||||
|
|
||||||
@@ -103,6 +113,18 @@ public class RetResult<T> {
|
|||||||
return new RetResult(Utility.ofMap(items));
|
return new RetResult(Utility.ofMap(items));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清空result
|
||||||
|
*
|
||||||
|
* @param <V> V
|
||||||
|
*
|
||||||
|
* @return RetResult
|
||||||
|
*/
|
||||||
|
public <V> RetResult<V> clearResult() {
|
||||||
|
this.result = null;
|
||||||
|
return (RetResult) this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将RetResult<X> 转换成一个新的 RetResult<Y>
|
* 将RetResult<X> 转换成一个新的 RetResult<Y>
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user