WebRequest
This commit is contained in:
@@ -468,19 +468,19 @@ public final class Application {
|
||||
return null;
|
||||
}
|
||||
}, java.net.http.HttpClient.class);
|
||||
//------------------------------------ 注册 HttpSimpleClient ------------------------------------
|
||||
//------------------------------------ 注册 WebClient ------------------------------------
|
||||
resourceFactory.register((ResourceFactory rf, String srcResourceName, Object srcObj, String resourceName, Field field, Object attachment) -> {
|
||||
try {
|
||||
HttpSimpleClient httpClient = HttpSimpleClient.create(workExecutor, clientAsyncGroup);
|
||||
WebClient httpClient = WebClient.create(workExecutor, clientAsyncGroup);
|
||||
field.set(srcObj, httpClient);
|
||||
rf.inject(resourceName, httpClient, null); // 给其可能包含@Resource的字段赋值;
|
||||
rf.register(resourceName, HttpSimpleClient.class, httpClient);
|
||||
rf.register(resourceName, WebClient.class, httpClient);
|
||||
return httpClient;
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.SEVERE, HttpSimpleClient.class.getSimpleName() + " inject error", e);
|
||||
logger.log(Level.SEVERE, WebClient.class.getSimpleName() + " inject error", e);
|
||||
return null;
|
||||
}
|
||||
}, HttpSimpleClient.class);
|
||||
}, WebClient.class);
|
||||
//------------------------------------ 注册 HttpRpcClient ------------------------------------
|
||||
resourceFactory.register((ResourceFactory rf, String srcResourceName, Object srcObj, String resourceName, Field field, Object attachment) -> {
|
||||
try {
|
||||
|
||||
@@ -22,43 +22,43 @@ import org.redkale.util.RedkaleException;
|
||||
*
|
||||
* @since 2.1.0
|
||||
*/
|
||||
public abstract class HttpRpcClient implements ClusterRpcClient<HttpSimpleRequest, HttpResult<byte[]>> {
|
||||
public abstract class HttpRpcClient implements ClusterRpcClient<WebRequest, HttpResult<byte[]>> {
|
||||
|
||||
@Override
|
||||
public final CompletableFuture<Void> produceMessage(HttpSimpleRequest request) {
|
||||
public final CompletableFuture<Void> produceMessage(WebRequest request) {
|
||||
return produceMessage(generateHttpReqTopic(request, null), 0, null, request);
|
||||
}
|
||||
|
||||
public final CompletableFuture<Void> produceMessage(Serializable userid, HttpSimpleRequest request) {
|
||||
public final CompletableFuture<Void> produceMessage(Serializable userid, WebRequest request) {
|
||||
return produceMessage(generateHttpReqTopic(request, null), userid, null, request);
|
||||
}
|
||||
|
||||
public final CompletableFuture<Void> produceMessage(Serializable userid, String groupid, HttpSimpleRequest request) {
|
||||
public final CompletableFuture<Void> produceMessage(Serializable userid, String groupid, WebRequest request) {
|
||||
return produceMessage(generateHttpReqTopic(request, null), userid, groupid, request);
|
||||
}
|
||||
|
||||
public final CompletableFuture<Void> produceMessage(String topic, HttpSimpleRequest request) {
|
||||
public final CompletableFuture<Void> produceMessage(String topic, WebRequest request) {
|
||||
return produceMessage(topic, 0, null, request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CompletableFuture<HttpResult<byte[]>> sendMessage(HttpSimpleRequest request) {
|
||||
public final CompletableFuture<HttpResult<byte[]>> sendMessage(WebRequest request) {
|
||||
return sendMessage(generateHttpReqTopic(request, null), 0, null, request);
|
||||
}
|
||||
|
||||
public final CompletableFuture<HttpResult<byte[]>> sendMessage(Serializable userid, HttpSimpleRequest request) {
|
||||
public final CompletableFuture<HttpResult<byte[]>> sendMessage(Serializable userid, WebRequest request) {
|
||||
return sendMessage(generateHttpReqTopic(request, null), userid, null, request);
|
||||
}
|
||||
|
||||
public final CompletableFuture<HttpResult<byte[]>> sendMessage(Serializable userid, String groupid, HttpSimpleRequest request) {
|
||||
public final CompletableFuture<HttpResult<byte[]>> sendMessage(Serializable userid, String groupid, WebRequest request) {
|
||||
return sendMessage(generateHttpReqTopic(request, null), userid, groupid, request);
|
||||
}
|
||||
|
||||
public final CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, HttpSimpleRequest request) {
|
||||
public final CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, WebRequest request) {
|
||||
return sendMessage(topic, 0, null, request);
|
||||
}
|
||||
|
||||
public <T> CompletableFuture<T> sendMessage(HttpSimpleRequest request, Type type) {
|
||||
public <T> CompletableFuture<T> sendMessage(WebRequest request, Type type) {
|
||||
return sendMessage(generateHttpReqTopic(request, null), 0, null, request).thenApply((HttpResult<byte[]> httbs) -> {
|
||||
if (!httbs.isSuccess()) {
|
||||
throw new RedkaleException(httbs.getHeader("retinfo", "Internal Server Error"));
|
||||
@@ -70,7 +70,7 @@ public abstract class HttpRpcClient implements ClusterRpcClient<HttpSimpleReques
|
||||
});
|
||||
}
|
||||
|
||||
public <T> CompletableFuture<T> sendMessage(Serializable userid, HttpSimpleRequest request, Type type) {
|
||||
public <T> CompletableFuture<T> sendMessage(Serializable userid, WebRequest request, Type type) {
|
||||
return sendMessage(generateHttpReqTopic(request, null), userid, null, request).thenApply((HttpResult<byte[]> httbs) -> {
|
||||
if (!httbs.isSuccess()) {
|
||||
throw new RedkaleException(httbs.getHeader("retinfo", "Internal Server Error"));
|
||||
@@ -82,7 +82,7 @@ public abstract class HttpRpcClient implements ClusterRpcClient<HttpSimpleReques
|
||||
});
|
||||
}
|
||||
|
||||
public <T> CompletableFuture<T> sendMessage(Serializable userid, String groupid, HttpSimpleRequest request, Type type) {
|
||||
public <T> CompletableFuture<T> sendMessage(Serializable userid, String groupid, WebRequest request, Type type) {
|
||||
return sendMessage(generateHttpReqTopic(request, null), userid, groupid, request).thenApply((HttpResult<byte[]> httbs) -> {
|
||||
if (!httbs.isSuccess()) {
|
||||
throw new RedkaleException(httbs.getHeader("retinfo", "Internal Server Error"));
|
||||
@@ -104,7 +104,7 @@ public abstract class HttpRpcClient implements ClusterRpcClient<HttpSimpleReques
|
||||
return Rest.generateHttpReqTopic(module, resname, getNodeid());
|
||||
}
|
||||
|
||||
public String generateHttpReqTopic(HttpSimpleRequest request, String path) {
|
||||
public String generateHttpReqTopic(WebRequest request, String path) {
|
||||
String module = request.getPath();
|
||||
if (path != null && !path.isEmpty() && module.startsWith(path)) {
|
||||
module = module.substring(path.length());
|
||||
@@ -115,9 +115,9 @@ public abstract class HttpRpcClient implements ClusterRpcClient<HttpSimpleReques
|
||||
return Rest.generateHttpReqTopic(module, resname, getNodeid());
|
||||
}
|
||||
|
||||
public abstract CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, Serializable userid, String groupid, HttpSimpleRequest request);
|
||||
public abstract CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, Serializable userid, String groupid, WebRequest request);
|
||||
|
||||
public abstract CompletableFuture<Void> produceMessage(String topic, Serializable userid, String groupid, HttpSimpleRequest request);
|
||||
public abstract CompletableFuture<Void> produceMessage(String topic, Serializable userid, String groupid, WebRequest request);
|
||||
|
||||
protected abstract String getNodeid();
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ public class HttpClusterRpcClient extends HttpRpcClient {
|
||||
protected ClusterAgent clusterAgent;
|
||||
|
||||
@Resource(name = "cluster.httpClient", required = false)
|
||||
protected HttpSimpleClient httpSimpleClient;
|
||||
protected WebClient webClient;
|
||||
|
||||
@Resource(name = "cluster.httpClient", required = false)
|
||||
protected java.net.http.HttpClient httpClient;
|
||||
@@ -59,7 +59,7 @@ public class HttpClusterRpcClient extends HttpRpcClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, Serializable userid, String groupid, HttpSimpleRequest request) {
|
||||
public CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, Serializable userid, String groupid, WebRequest request) {
|
||||
if (topicServletMap.computeIfAbsent(topic, t -> localClient.findHttpServlet(t) != null)) {
|
||||
return localClient.sendMessage(topic, userid, groupid, request);
|
||||
} else {
|
||||
@@ -68,7 +68,7 @@ public class HttpClusterRpcClient extends HttpRpcClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> produceMessage(String topic, Serializable userid, String groupid, HttpSimpleRequest request) {
|
||||
public CompletableFuture<Void> produceMessage(String topic, Serializable userid, String groupid, WebRequest request) {
|
||||
if (topicServletMap.computeIfAbsent(topic, t -> localClient.findHttpServlet(t) != null)) {
|
||||
return localClient.produceMessage(topic, userid, groupid, request);
|
||||
} else {
|
||||
@@ -76,7 +76,7 @@ public class HttpClusterRpcClient extends HttpRpcClient {
|
||||
}
|
||||
}
|
||||
|
||||
private CompletableFuture<HttpResult<byte[]>> httpAsync(boolean produce, Serializable userid, HttpSimpleRequest req) {
|
||||
private CompletableFuture<HttpResult<byte[]>> httpAsync(boolean produce, Serializable userid, WebRequest req) {
|
||||
req.setTraceid(Traces.computeIfAbsent(req.getTraceid(), Traces.currentTraceid()));
|
||||
String module = req.getPath();
|
||||
module = module.substring(1, module.indexOf('/', 1));
|
||||
@@ -123,13 +123,13 @@ public class HttpClusterRpcClient extends HttpRpcClient {
|
||||
clientHeaders.set(Rest.REST_HEADER_RESP_CONVERT, req.getRespConvertType().toString());
|
||||
}
|
||||
|
||||
if (httpSimpleClient != null) {
|
||||
HttpSimpleRequest newReq = req.copy().headers(clientHeaders);
|
||||
if (webClient != null) {
|
||||
WebRequest newReq = req.copy().headers(clientHeaders);
|
||||
InetSocketAddress addr = randomAddress(newReq, addrs);
|
||||
if (logger.isLoggable(Level.FINEST)) {
|
||||
logger.log(Level.FINEST, "httpAsync: module=" + localModule + ", resname=" + resname + ", addr=" + addr);
|
||||
}
|
||||
return (CompletableFuture) httpSimpleClient.sendAsync(addr, newReq);
|
||||
return (CompletableFuture) webClient.sendAsync(addr, newReq);
|
||||
}
|
||||
byte[] clientBody = null;
|
||||
if (isNotEmpty(req.getBody())) {
|
||||
@@ -155,12 +155,12 @@ public class HttpClusterRpcClient extends HttpRpcClient {
|
||||
});
|
||||
}
|
||||
|
||||
protected InetSocketAddress randomAddress(HttpSimpleRequest req, Set<InetSocketAddress> addrs) {
|
||||
protected InetSocketAddress randomAddress(WebRequest req, Set<InetSocketAddress> addrs) {
|
||||
InetSocketAddress[] array = addrs.toArray(new InetSocketAddress[addrs.size()]);
|
||||
return array[ThreadLocalRandom.current().nextInt(array.length)];
|
||||
}
|
||||
|
||||
protected CompletableFuture<HttpResult<byte[]>> sendEachAddressAsync(HttpSimpleRequest req,
|
||||
protected CompletableFuture<HttpResult<byte[]>> sendEachAddressAsync(WebRequest req,
|
||||
String requestPath, final HttpHeaders clientHeaders, byte[] clientBody, Iterator<InetSocketAddress> it) {
|
||||
if (!it.hasNext()) {
|
||||
return new HttpResult<byte[]>().status(404).toFuture();
|
||||
|
||||
@@ -89,22 +89,22 @@ public class HttpLocalRpcClient extends HttpRpcClient {
|
||||
return dispatcherServlet().findServletByTopic(topic);
|
||||
}
|
||||
|
||||
public HttpServlet findHttpServlet(HttpSimpleRequest request) {
|
||||
public HttpServlet findHttpServlet(WebRequest request) {
|
||||
return dispatcherServlet().findServletByTopic(generateHttpReqTopic(request, request.getContextPath()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<T> sendMessage(HttpSimpleRequest request, Type type) {
|
||||
public <T> CompletableFuture<T> sendMessage(WebRequest request, Type type) {
|
||||
return sendMessage((Serializable) null, (String) null, request, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<T> sendMessage(Serializable userid, HttpSimpleRequest request, Type type) {
|
||||
public <T> CompletableFuture<T> sendMessage(Serializable userid, WebRequest request, Type type) {
|
||||
return sendMessage(userid, (String) null, request, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> CompletableFuture<T> sendMessage(Serializable userid, String groupid, HttpSimpleRequest request, Type type) {
|
||||
public <T> CompletableFuture<T> sendMessage(Serializable userid, String groupid, WebRequest request, Type type) {
|
||||
if (isEmpty(request.getTraceid())) {
|
||||
request.setTraceid(Traces.currentTraceid());
|
||||
}
|
||||
@@ -129,7 +129,7 @@ public class HttpLocalRpcClient extends HttpRpcClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, Serializable userid, String groupid, HttpSimpleRequest request) {
|
||||
public CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, Serializable userid, String groupid, WebRequest request) {
|
||||
if (isEmpty(request.getTraceid())) {
|
||||
request.setTraceid(Traces.currentTraceid());
|
||||
}
|
||||
@@ -166,7 +166,7 @@ public class HttpLocalRpcClient extends HttpRpcClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> produceMessage(String topic, Serializable userid, String groupid, HttpSimpleRequest request) {
|
||||
public CompletableFuture<Void> produceMessage(String topic, Serializable userid, String groupid, WebRequest request) {
|
||||
CompletableFuture future = new CompletableFuture();
|
||||
HttpDispatcherServlet ps = dispatcherServlet();
|
||||
HttpServlet servlet = ps.findServletByTopic(topic);
|
||||
@@ -192,7 +192,7 @@ public class HttpLocalRpcClient extends HttpRpcClient {
|
||||
|
||||
public static class HttpMessageLocalRequest extends HttpRequest {
|
||||
|
||||
public HttpMessageLocalRequest(HttpContext context, HttpSimpleRequest req, Serializable userid) {
|
||||
public HttpMessageLocalRequest(HttpContext context, WebRequest req, Serializable userid) {
|
||||
super(context, req);
|
||||
if (userid != null) {
|
||||
this.currentUserid = userid;
|
||||
|
||||
@@ -26,14 +26,14 @@ public class HttpMessageRequest extends HttpRequest {
|
||||
}
|
||||
|
||||
public HttpMessageRequest(HttpContext context, MessageRecord message) {
|
||||
super(context, (HttpSimpleRequest) null);
|
||||
super(context, (WebRequest) null);
|
||||
if (message != null) {
|
||||
prepare(message);
|
||||
}
|
||||
}
|
||||
|
||||
protected HttpMessageRequest prepare(MessageRecord message) {
|
||||
super.initSimpleRequest(message.decodeContent(HttpSimpleRequestCoder.getInstance()), false);
|
||||
super.initSimpleRequest(message.decodeContent(WebRequestCoder.getInstance()), false);
|
||||
this.message = message;
|
||||
this.currentUserid = message.getUserid();
|
||||
this.createTime = System.currentTimeMillis();
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.util.concurrent.CompletableFuture;
|
||||
import org.redkale.cluster.HttpRpcClient;
|
||||
import static org.redkale.mq.spi.MessageRecord.CTYPE_HTTP_REQUEST;
|
||||
import org.redkale.net.http.HttpResult;
|
||||
import org.redkale.net.http.HttpSimpleRequest;
|
||||
import org.redkale.net.http.WebRequest;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -16,7 +16,7 @@ import org.redkale.net.http.HttpSimpleRequest;
|
||||
*/
|
||||
final class HttpRpcMessageClient extends HttpRpcClient {
|
||||
|
||||
private final MessageCoder<HttpSimpleRequest> requestCoder = HttpSimpleRequestCoder.getInstance();
|
||||
private final MessageCoder<WebRequest> requestCoder = WebRequestCoder.getInstance();
|
||||
|
||||
private final String nodeid;
|
||||
|
||||
@@ -28,14 +28,14 @@ final class HttpRpcMessageClient extends HttpRpcClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, Serializable userid, String groupid, HttpSimpleRequest request) {
|
||||
public CompletableFuture<HttpResult<byte[]>> sendMessage(String topic, Serializable userid, String groupid, WebRequest request) {
|
||||
MessageRecord message = messageClient.createMessageRecord(CTYPE_HTTP_REQUEST, topic, null, request.getTraceid(), requestCoder.encode(request));
|
||||
message.userid(userid).groupid(groupid);
|
||||
return messageClient.sendMessage(message).thenApply(r -> r.decodeContent(HttpResultCoder.getInstance()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> produceMessage(String topic, Serializable userid, String groupid, HttpSimpleRequest request) {
|
||||
public CompletableFuture<Void> produceMessage(String topic, Serializable userid, String groupid, WebRequest request) {
|
||||
MessageRecord message = messageClient.createMessageRecord(CTYPE_HTTP_REQUEST, topic, null, request.getTraceid(), requestCoder.encode(request));
|
||||
message.userid(userid).groupid(groupid);
|
||||
return messageClient.produceMessage(message);
|
||||
|
||||
@@ -11,7 +11,7 @@ import java.util.Arrays;
|
||||
import org.redkale.annotation.Comment;
|
||||
import org.redkale.convert.*;
|
||||
import org.redkale.convert.json.JsonConvert;
|
||||
import org.redkale.net.http.HttpSimpleRequest;
|
||||
import org.redkale.net.http.WebRequest;
|
||||
import org.redkale.net.http.WebSocketPacket;
|
||||
import org.redkale.net.sncp.SncpHeader;
|
||||
import org.redkale.util.RedkaleException;
|
||||
@@ -38,7 +38,7 @@ public class MessageRecord implements Serializable {
|
||||
//Bson bytes
|
||||
public static final byte CTYPE_BSON = 2;
|
||||
|
||||
//HttpSimpleRequest
|
||||
//WebRequest
|
||||
public static final byte CTYPE_HTTP_REQUEST = 3;
|
||||
|
||||
//HttpResult<byte[]>
|
||||
@@ -336,7 +336,7 @@ public class MessageRecord implements Serializable {
|
||||
//SncpHeader包含不确定长度的信息,故不能再直接偏移读取
|
||||
sb.append(",\"content\":").append("bytes[" + this.content.length + "]");
|
||||
} else if (this.ctype == CTYPE_HTTP_REQUEST) {
|
||||
HttpSimpleRequest req = HttpSimpleRequestCoder.getInstance().decode(this.content);
|
||||
WebRequest req = WebRequestCoder.getInstance().decode(this.content);
|
||||
if (req != null) {
|
||||
if (req.getCurrentUserid() == null) {
|
||||
req.setCurrentUserid(this.userid);
|
||||
|
||||
@@ -12,11 +12,11 @@ import java.util.Map;
|
||||
import org.redkale.convert.ConvertType;
|
||||
import org.redkale.net.http.HttpHeaders;
|
||||
import org.redkale.net.http.HttpParameters;
|
||||
import org.redkale.net.http.HttpSimpleRequest;
|
||||
import org.redkale.net.http.WebRequest;
|
||||
import org.redkale.util.Utility;
|
||||
|
||||
/**
|
||||
* HttpSimpleRequest的MessageCoder实现
|
||||
* WebRequest的MessageCoder实现
|
||||
*
|
||||
* <p>
|
||||
* 详情见: https://redkale.org
|
||||
@@ -25,11 +25,11 @@ import org.redkale.util.Utility;
|
||||
*
|
||||
* @since 2.1.0
|
||||
*/
|
||||
public class HttpSimpleRequestCoder implements MessageCoder<HttpSimpleRequest> {
|
||||
public class WebRequestCoder implements MessageCoder<WebRequest> {
|
||||
|
||||
private static final HttpSimpleRequestCoder instance = new HttpSimpleRequestCoder();
|
||||
private static final WebRequestCoder instance = new WebRequestCoder();
|
||||
|
||||
public static HttpSimpleRequestCoder getInstance() {
|
||||
public static WebRequestCoder getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public class HttpSimpleRequestCoder implements MessageCoder<HttpSimpleRequest> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] encode(HttpSimpleRequest data) {
|
||||
public byte[] encode(WebRequest data) {
|
||||
byte[] traceid = MessageCoder.getBytes(data.getTraceid());//short-string
|
||||
byte[] path = MessageCoder.getBytes(data.getPath()); //long-string
|
||||
byte[] contextPath = MessageCoder.getBytes(data.getContextPath()); //short-string
|
||||
@@ -141,12 +141,12 @@ public class HttpSimpleRequestCoder implements MessageCoder<HttpSimpleRequest> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpSimpleRequest decode(byte[] data) {
|
||||
public WebRequest decode(byte[] data) {
|
||||
if (data == null) {
|
||||
return null;
|
||||
}
|
||||
ByteBuffer buffer = ByteBuffer.wrap(data);
|
||||
HttpSimpleRequest req = new HttpSimpleRequest();
|
||||
WebRequest req = new WebRequest();
|
||||
byte opt = buffer.get();
|
||||
req.setRpc((opt & 0b01) > 0);
|
||||
int reqformat = buffer.getInt();
|
||||
@@ -189,7 +189,7 @@ public class HttpRequest extends Request<HttpContext> {
|
||||
}
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
protected HttpRequest(HttpContext context, HttpSimpleRequest req) {
|
||||
protected HttpRequest(HttpContext context, WebRequest req) {
|
||||
super(context);
|
||||
this.array = new ByteArray();
|
||||
this.remoteAddrHeader = null;
|
||||
@@ -201,7 +201,7 @@ public class HttpRequest extends Request<HttpContext> {
|
||||
}
|
||||
}
|
||||
|
||||
protected HttpRequest initSimpleRequest(HttpSimpleRequest req, boolean needPath) {
|
||||
protected HttpRequest initSimpleRequest(WebRequest req, boolean needPath) {
|
||||
if (req != null) {
|
||||
this.rpc = req.rpc;
|
||||
this.traceid = req.traceid;
|
||||
@@ -233,8 +233,8 @@ public class HttpRequest extends Request<HttpContext> {
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest createSimpleRequest(String contextPath) {
|
||||
HttpSimpleRequest req = new HttpSimpleRequest();
|
||||
public WebRequest createSimpleRequest(String contextPath) {
|
||||
WebRequest req = new WebRequest();
|
||||
req.setBody(array.length() == 0 ? null : array.getBytes());
|
||||
if (!getHeaders().isEmpty()) {
|
||||
req.setHeaders(headers);
|
||||
|
||||
@@ -34,7 +34,7 @@ import org.redkale.util.*;
|
||||
* @since 2.3.0
|
||||
*
|
||||
*/
|
||||
public class HttpSimpleClient extends Client<HttpSimpleConnection, HttpSimpleRequest, HttpSimpleResult> {
|
||||
public class WebClient extends Client<WebConnection, WebRequest, WebResult> {
|
||||
|
||||
public static final String USER_AGENT = "Redkale-http-client/" + Redkale.getDotedVersion();
|
||||
|
||||
@@ -48,7 +48,7 @@ public class HttpSimpleClient extends Client<HttpSimpleConnection, HttpSimpleReq
|
||||
|
||||
protected ExecutorService workExecutor;
|
||||
|
||||
protected HttpSimpleClient(ExecutorService workExecutor, AsyncGroup asyncGroup) {
|
||||
protected WebClient(ExecutorService workExecutor, AsyncGroup asyncGroup) {
|
||||
super("Redkale-http-client", asyncGroup, new ClientAddress(new InetSocketAddress("127.0.0.1", 0)));
|
||||
this.workExecutor = workExecutor;
|
||||
this.asyncGroup = asyncGroup;
|
||||
@@ -57,30 +57,30 @@ public class HttpSimpleClient extends Client<HttpSimpleConnection, HttpSimpleReq
|
||||
this.writeTimeoutSeconds = 6;
|
||||
}
|
||||
|
||||
public static HttpSimpleClient create(ExecutorService workExecutor, AsyncGroup asyncGroup) {
|
||||
return new HttpSimpleClient(workExecutor, asyncGroup);
|
||||
public static WebClient create(ExecutorService workExecutor, AsyncGroup asyncGroup) {
|
||||
return new WebClient(workExecutor, asyncGroup);
|
||||
}
|
||||
|
||||
public static HttpSimpleClient create(AsyncGroup asyncGroup) {
|
||||
public static WebClient create(AsyncGroup asyncGroup) {
|
||||
return create(null, asyncGroup);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected HttpSimpleConnection createClientConnection(AsyncConnection channel) {
|
||||
return new HttpSimpleConnection(this, channel);
|
||||
protected WebConnection createClientConnection(AsyncConnection channel) {
|
||||
return new WebConnection(this, channel);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CompletableFuture<HttpSimpleResult> writeChannel(ClientConnection conn, HttpSimpleRequest request) {
|
||||
protected CompletableFuture<WebResult> writeChannel(ClientConnection conn, WebRequest request) {
|
||||
return super.writeChannel(conn, request);
|
||||
}
|
||||
|
||||
public HttpSimpleClient readTimeoutSeconds(int readTimeoutSeconds) {
|
||||
public WebClient readTimeoutSeconds(int readTimeoutSeconds) {
|
||||
this.readTimeoutSeconds = readTimeoutSeconds;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleClient writeTimeoutSeconds(int writeTimeoutSeconds) {
|
||||
public WebClient writeTimeoutSeconds(int writeTimeoutSeconds) {
|
||||
this.writeTimeoutSeconds = writeTimeoutSeconds;
|
||||
return this;
|
||||
}
|
||||
@@ -213,11 +213,11 @@ public class HttpSimpleClient extends Client<HttpSimpleConnection, HttpSimpleReq
|
||||
return sendAsync("POST", url, headers, body);
|
||||
}
|
||||
|
||||
public CompletableFuture<HttpResult<byte[]>> sendAsync(String url, HttpSimpleRequest req) {
|
||||
public CompletableFuture<HttpResult<byte[]>> sendAsync(String url, WebRequest req) {
|
||||
return sendAsync(req.getMethod(), url, req.getHeaders(), req.getBody(), (Convert) null, null);
|
||||
}
|
||||
|
||||
public <T> CompletableFuture<HttpResult<T>> sendAsync(String url, HttpSimpleRequest req, Type valueType) {
|
||||
public <T> CompletableFuture<HttpResult<T>> sendAsync(String url, WebRequest req, Type valueType) {
|
||||
return sendAsync(req.getMethod(), url, req.getHeaders(), req.getBody(), (Convert) null, null);
|
||||
}
|
||||
|
||||
@@ -244,9 +244,9 @@ public class HttpSimpleClient extends Client<HttpSimpleConnection, HttpSimpleReq
|
||||
int urlpos = url.indexOf("/", url.indexOf("//") + 3);
|
||||
final String path = (urlpos > 0 ? url.substring(urlpos) : "/");
|
||||
if (!url.startsWith("https:")) {
|
||||
HttpSimpleRequest req = HttpSimpleRequest.createPath(path, headers).method(method).body(body);
|
||||
WebRequest req = WebRequest.createPath(path, headers).method(method).body(body);
|
||||
return (CompletableFuture) sendAsync(new InetSocketAddress(host, port), req)
|
||||
.thenApply((HttpSimpleResult rs) -> {
|
||||
.thenApply((WebResult rs) -> {
|
||||
if (valueType == null) {
|
||||
return rs;
|
||||
} else {
|
||||
@@ -261,7 +261,7 @@ public class HttpSimpleClient extends Client<HttpSimpleConnection, HttpSimpleReq
|
||||
array.put((method.toUpperCase() + " " + path + " HTTP/1.1\r\n").getBytes(StandardCharsets.UTF_8));
|
||||
array.put(("Host: " + uri.getHost() + "\r\n").getBytes(StandardCharsets.UTF_8));
|
||||
|
||||
array.put(HttpSimpleRequest.contentLengthBytes(body));
|
||||
array.put(WebRequest.contentLengthBytes(body));
|
||||
if (headers == null || !headers.contains("User-Agent")) {
|
||||
array.put(header_bytes_useragent);
|
||||
}
|
||||
@@ -318,7 +318,7 @@ public class HttpSimpleClient extends Client<HttpSimpleConnection, HttpSimpleReq
|
||||
// final AsyncIOGroup asyncGroup = new AsyncIOGroup(8192, 16);
|
||||
// asyncGroup.start();
|
||||
// String url = "http://redkale.org";
|
||||
// HttpSimpleClient client = HttpSimpleClient.createPostPath(asyncGroup);
|
||||
// WebClient client = WebClient.createPostPath(asyncGroup);
|
||||
// (System.out).println(client.getAsync(url).join());
|
||||
// }
|
||||
//
|
||||
@@ -15,17 +15,17 @@ import org.redkale.util.ByteArray;
|
||||
*
|
||||
* @author zhangjx
|
||||
*/
|
||||
class HttpSimpleCodec extends ClientCodec<HttpSimpleRequest, HttpSimpleResult> {
|
||||
class WebCodec extends ClientCodec<WebRequest, WebResult> {
|
||||
|
||||
protected static final Logger logger = Logger.getLogger(HttpSimpleCodec.class.getSimpleName());
|
||||
protected static final Logger logger = Logger.getLogger(WebCodec.class.getSimpleName());
|
||||
|
||||
private ByteArray recyclableArray;
|
||||
|
||||
private ByteArray halfBytes;
|
||||
|
||||
private HttpSimpleResult lastResult = null;
|
||||
private WebResult lastResult = null;
|
||||
|
||||
public HttpSimpleCodec(HttpSimpleConnection connection) {
|
||||
public WebCodec(WebConnection connection) {
|
||||
super(connection);
|
||||
}
|
||||
|
||||
@@ -45,9 +45,9 @@ class HttpSimpleCodec extends ClientCodec<HttpSimpleRequest, HttpSimpleResult> {
|
||||
int rs;
|
||||
final ByteBuffer buffer = realBuf;
|
||||
while (buffer.hasRemaining()) {
|
||||
HttpSimpleResult result = this.lastResult;
|
||||
WebResult result = this.lastResult;
|
||||
if (result == null) {
|
||||
result = new HttpSimpleResult();
|
||||
result = new WebResult();
|
||||
result.readState = READ_STATE_ROUTE;
|
||||
this.lastResult = result;
|
||||
}
|
||||
@@ -95,7 +95,7 @@ class HttpSimpleCodec extends ClientCodec<HttpSimpleRequest, HttpSimpleResult> {
|
||||
}
|
||||
|
||||
//解析 HTTP/1.1 200 OK
|
||||
private int readStatusLine(final HttpSimpleResult result, final ByteBuffer buffer, final ByteArray array) {
|
||||
private int readStatusLine(final WebResult result, final ByteBuffer buffer, final ByteArray array) {
|
||||
int remain = buffer.remaining();
|
||||
if (array.length() > 0 && array.getLastByte() == '\r') { //array存在半截数据
|
||||
if (buffer.get() != '\n') {
|
||||
@@ -129,7 +129,7 @@ class HttpSimpleCodec extends ClientCodec<HttpSimpleRequest, HttpSimpleResult> {
|
||||
|
||||
//解析Header Connection: keep-alive
|
||||
//返回0表示解析完整,非0表示还需继续读数据
|
||||
private int readHeaderBytes(final HttpSimpleResult result, final ByteBuffer buffer, final ByteArray array) {
|
||||
private int readHeaderBytes(final WebResult result, final ByteBuffer buffer, final ByteArray array) {
|
||||
byte b;
|
||||
while (buffer.hasRemaining()) {
|
||||
b = buffer.get();
|
||||
@@ -147,7 +147,7 @@ class HttpSimpleCodec extends ClientCodec<HttpSimpleRequest, HttpSimpleResult> {
|
||||
return 1;
|
||||
}
|
||||
|
||||
private int readBody(final HttpSimpleResult result, final ByteBuffer buffer, final ByteArray array) {
|
||||
private int readBody(final WebResult result, final ByteBuffer buffer, final ByteArray array) {
|
||||
if (result.contentLength >= 0) {
|
||||
array.put(buffer, Math.min((int) result.contentLength, buffer.remaining()));
|
||||
int lr = (int) result.contentLength - array.length();
|
||||
@@ -159,7 +159,7 @@ class HttpSimpleCodec extends ClientCodec<HttpSimpleRequest, HttpSimpleResult> {
|
||||
return -1;
|
||||
}
|
||||
|
||||
private void readHeaderLines(final HttpSimpleResult result, ByteArray bytes) {
|
||||
private void readHeaderLines(final WebResult result, ByteArray bytes) {
|
||||
int start = 0;
|
||||
int posC, posR;
|
||||
Charset charset = StandardCharsets.UTF_8;
|
||||
@@ -17,15 +17,15 @@ import org.redkale.net.client.ClientConnection;
|
||||
*
|
||||
* @since 2.8.0
|
||||
*/
|
||||
class HttpSimpleConnection extends ClientConnection<HttpSimpleRequest, HttpSimpleResult> {
|
||||
class WebConnection extends ClientConnection<WebRequest, WebResult> {
|
||||
|
||||
public HttpSimpleConnection(HttpSimpleClient client, AsyncConnection channel) {
|
||||
public WebConnection(WebClient client, AsyncConnection channel) {
|
||||
super(client, channel);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ClientCodec createCodec() {
|
||||
return new HttpSimpleCodec(this);
|
||||
return new WebCodec(this);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -16,7 +16,7 @@ import org.redkale.convert.*;
|
||||
import org.redkale.convert.json.JsonConvert;
|
||||
import org.redkale.net.client.ClientConnection;
|
||||
import org.redkale.net.client.ClientRequest;
|
||||
import static org.redkale.net.http.HttpSimpleClient.*;
|
||||
import static org.redkale.net.http.WebClient.*;
|
||||
import org.redkale.util.ByteArray;
|
||||
import org.redkale.util.Copier;
|
||||
import org.redkale.util.RedkaleException;
|
||||
@@ -34,9 +34,9 @@ import static org.redkale.util.Utility.isNotEmpty;
|
||||
*
|
||||
* @since 2.1.0
|
||||
*/
|
||||
public class HttpSimpleRequest extends ClientRequest implements java.io.Serializable {
|
||||
public class WebRequest extends ClientRequest implements java.io.Serializable {
|
||||
|
||||
private static final Function<HttpSimpleRequest, HttpSimpleRequest> copyFunc = Copier.func(HttpSimpleRequest.class, HttpSimpleRequest.class);
|
||||
private static final Function<WebRequest, WebRequest> copyFunc = Copier.func(WebRequest.class, WebRequest.class);
|
||||
|
||||
@ConvertColumn(index = 12)
|
||||
@Comment("是否RPC请求, 该类通常是为RPC创建的,故默认是true")
|
||||
@@ -97,20 +97,20 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
@Comment("http body信息")
|
||||
protected byte[] body; //对应HttpRequest.array
|
||||
|
||||
public static HttpSimpleRequest createPath(String path) {
|
||||
return new HttpSimpleRequest().path(path).traceid(Traces.currentTraceid());
|
||||
public static WebRequest createPath(String path) {
|
||||
return new WebRequest().path(path).traceid(Traces.currentTraceid());
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createPath(String path, HttpHeaders header) {
|
||||
public static WebRequest createPath(String path, HttpHeaders header) {
|
||||
return createPath(path).headers(header);
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createPath(String path, Object... params) {
|
||||
public static WebRequest createPath(String path, Object... params) {
|
||||
return createPath(path, (HttpHeaders) null, params);
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createPath(String path, HttpHeaders header, Object... params) {
|
||||
HttpSimpleRequest req = createPath(path).headers(header);
|
||||
public static WebRequest createPath(String path, HttpHeaders header, Object... params) {
|
||||
WebRequest req = createPath(path).headers(header);
|
||||
if (params.length > 0) {
|
||||
int len = params.length / 2;
|
||||
for (int i = 0; i < len; i++) {
|
||||
@@ -120,40 +120,40 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
return req;
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createGetPath(String path) {
|
||||
public static WebRequest createGetPath(String path) {
|
||||
return createPath(path).method("GET");
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createGetPath(String path, HttpHeaders header) {
|
||||
public static WebRequest createGetPath(String path, HttpHeaders header) {
|
||||
return createPath(path, header).method("GET");
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createGetPath(String path, Object... params) {
|
||||
public static WebRequest createGetPath(String path, Object... params) {
|
||||
return createPath(path, params).method("GET");
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createGetPath(String path, HttpHeaders header, Object... params) {
|
||||
public static WebRequest createGetPath(String path, HttpHeaders header, Object... params) {
|
||||
return createPath(path, header, params).method("GET");
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createPostPath(String path) {
|
||||
public static WebRequest createPostPath(String path) {
|
||||
return createPath(path).method("POST");
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createPostPath(String path, HttpHeaders header) {
|
||||
public static WebRequest createPostPath(String path, HttpHeaders header) {
|
||||
return createPath(path, header).method("POST");
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createPostPath(String path, Object... params) {
|
||||
public static WebRequest createPostPath(String path, Object... params) {
|
||||
return createPath(path, params).method("POST");
|
||||
}
|
||||
|
||||
public static HttpSimpleRequest createPostPath(String path, HttpHeaders header, Object... params) {
|
||||
public static WebRequest createPostPath(String path, HttpHeaders header, Object... params) {
|
||||
return createPath(path, header, params).method("POST");
|
||||
}
|
||||
|
||||
public HttpSimpleRequest copy() {
|
||||
HttpSimpleRequest rs = copyFunc.apply(this);
|
||||
public WebRequest copy() {
|
||||
WebRequest rs = copyFunc.apply(this);
|
||||
rs.workThread = this.workThread;
|
||||
rs.createTime = this.createTime;
|
||||
return rs;
|
||||
@@ -247,17 +247,17 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
return this.contextPath + this.path;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest formUrlencoded() {
|
||||
public WebRequest formUrlencoded() {
|
||||
this.headers.set("Content-Type", "x-www-form-urlencoded");
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest rpc(boolean rpc) {
|
||||
public WebRequest rpc(boolean rpc) {
|
||||
this.rpc = rpc;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest traceid(String traceid) {
|
||||
public WebRequest traceid(String traceid) {
|
||||
if (traceid != null) {
|
||||
if (traceid.indexOf(' ') >= 0 || traceid.indexOf('\r') >= 0 || traceid.indexOf('\n') >= 0) {
|
||||
throw new RedkaleException("http-traceid(" + traceid + ") is illegal");
|
||||
@@ -267,7 +267,7 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest path(String path) {
|
||||
public WebRequest path(String path) {
|
||||
if (path != null) {
|
||||
if (path.indexOf(' ') >= 0 || path.indexOf('\r') >= 0 || path.indexOf('\n') >= 0) {
|
||||
throw new RedkaleException("http-path(" + path + ") is illegal");
|
||||
@@ -277,7 +277,7 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest contextPath(String contextPath) {
|
||||
public WebRequest contextPath(String contextPath) {
|
||||
if (contextPath != null) {
|
||||
if (contextPath.indexOf(' ') >= 0 || contextPath.indexOf('\r') >= 0 || contextPath.indexOf('\n') >= 0) {
|
||||
throw new RedkaleException("http-context-path(" + contextPath + ") is illegal");
|
||||
@@ -287,72 +287,72 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest bothConvertType(ConvertType convertType) {
|
||||
public WebRequest bothConvertType(ConvertType convertType) {
|
||||
this.reqConvertType = convertType;
|
||||
this.respConvertType = convertType;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest reqConvertType(ConvertType reqConvertType) {
|
||||
public WebRequest reqConvertType(ConvertType reqConvertType) {
|
||||
this.reqConvertType = reqConvertType;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest respConvertType(ConvertType respConvertType) {
|
||||
public WebRequest respConvertType(ConvertType respConvertType) {
|
||||
this.respConvertType = respConvertType;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest remoteAddr(String remoteAddr) {
|
||||
public WebRequest remoteAddr(String remoteAddr) {
|
||||
this.remoteAddr = remoteAddr;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest locale(String locale) {
|
||||
public WebRequest locale(String locale) {
|
||||
this.locale = locale;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest sessionid(String sessionid) {
|
||||
public WebRequest sessionid(String sessionid) {
|
||||
this.sessionid = sessionid;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest contentType(String contentType) {
|
||||
public WebRequest contentType(String contentType) {
|
||||
this.contentType = contentType;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest currentUserid(Serializable userid) {
|
||||
public WebRequest currentUserid(Serializable userid) {
|
||||
this.currentUserid = userid;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest removeHeader(String name) {
|
||||
public WebRequest removeHeader(String name) {
|
||||
if (this.headers != null) {
|
||||
this.headers.remove(name);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest removeParam(String name) {
|
||||
public WebRequest removeParam(String name) {
|
||||
if (this.params != null) {
|
||||
this.params.remove(name);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest headers(HttpHeaders header) {
|
||||
public WebRequest headers(HttpHeaders header) {
|
||||
this.headers = header;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest params(HttpParameters params) {
|
||||
public WebRequest params(HttpParameters params) {
|
||||
this.params = params;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest method(String method) {
|
||||
public WebRequest method(String method) {
|
||||
if (method != null) {
|
||||
if (method.indexOf(' ') >= 0 || method.indexOf('\r') >= 0 || method.indexOf('\n') >= 0) {
|
||||
throw new RedkaleException("http-method(" + method + ") is illegal");
|
||||
@@ -362,7 +362,7 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest addHeader(String key, String value) {
|
||||
public WebRequest addHeader(String key, String value) {
|
||||
if (this.headers == null) {
|
||||
this.headers = HttpHeaders.create();
|
||||
}
|
||||
@@ -370,23 +370,23 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest addHeader(String key, TextConvert convert, Object value) {
|
||||
public WebRequest addHeader(String key, TextConvert convert, Object value) {
|
||||
return addHeader(key, (convert == null ? JsonConvert.root() : convert).convertTo(value));
|
||||
}
|
||||
|
||||
public HttpSimpleRequest addHeader(String key, Object value) {
|
||||
public WebRequest addHeader(String key, Object value) {
|
||||
return addHeader(key, JsonConvert.root().convertTo(value));
|
||||
}
|
||||
|
||||
public HttpSimpleRequest addHeader(String key, int value) {
|
||||
public WebRequest addHeader(String key, int value) {
|
||||
return addHeader(key, String.valueOf(value));
|
||||
}
|
||||
|
||||
public HttpSimpleRequest addHeader(String key, long value) {
|
||||
public WebRequest addHeader(String key, long value) {
|
||||
return addHeader(key, String.valueOf(value));
|
||||
}
|
||||
|
||||
public HttpSimpleRequest setHeader(String key, String value) {
|
||||
public WebRequest setHeader(String key, String value) {
|
||||
if (this.headers == null) {
|
||||
this.headers = HttpHeaders.create();
|
||||
}
|
||||
@@ -394,23 +394,23 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest setHeader(String key, TextConvert convert, Object value) {
|
||||
public WebRequest setHeader(String key, TextConvert convert, Object value) {
|
||||
return setHeader(key, (convert == null ? JsonConvert.root() : convert).convertTo(value));
|
||||
}
|
||||
|
||||
public HttpSimpleRequest setHeader(String key, Object value) {
|
||||
public WebRequest setHeader(String key, Object value) {
|
||||
return setHeader(key, JsonConvert.root().convertTo(value));
|
||||
}
|
||||
|
||||
public HttpSimpleRequest setHeader(String key, int value) {
|
||||
public WebRequest setHeader(String key, int value) {
|
||||
return setHeader(key, String.valueOf(value));
|
||||
}
|
||||
|
||||
public HttpSimpleRequest setHeader(String key, long value) {
|
||||
public WebRequest setHeader(String key, long value) {
|
||||
return setHeader(key, String.valueOf(value));
|
||||
}
|
||||
|
||||
public HttpSimpleRequest param(String key, String value) {
|
||||
public WebRequest param(String key, String value) {
|
||||
if (this.params == null) {
|
||||
this.params = HttpParameters.create();
|
||||
}
|
||||
@@ -418,7 +418,7 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest param(String key, TextConvert convert, Object value) {
|
||||
public WebRequest param(String key, TextConvert convert, Object value) {
|
||||
if (this.params == null) {
|
||||
this.params = HttpParameters.create();
|
||||
}
|
||||
@@ -429,41 +429,41 @@ public class HttpSimpleRequest extends ClientRequest implements java.io.Serializ
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest param(String key, Object value) {
|
||||
public WebRequest param(String key, Object value) {
|
||||
return param(key, JsonConvert.root(), value);
|
||||
}
|
||||
|
||||
public HttpSimpleRequest body(byte[] body) {
|
||||
public WebRequest body(byte[] body) {
|
||||
this.body = body;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest clearParams() {
|
||||
public WebRequest clearParams() {
|
||||
this.params = null;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest clearHeaders() {
|
||||
public WebRequest clearHeaders() {
|
||||
this.headers = null;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest clearRemoteAddr() {
|
||||
public WebRequest clearRemoteAddr() {
|
||||
this.remoteAddr = null;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest clearLocale() {
|
||||
public WebRequest clearLocale() {
|
||||
this.locale = null;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest clearSessionid() {
|
||||
public WebRequest clearSessionid() {
|
||||
this.sessionid = null;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpSimpleRequest clearContentType() {
|
||||
public WebRequest clearContentType() {
|
||||
this.contentType = null;
|
||||
return this;
|
||||
}
|
||||
@@ -14,10 +14,11 @@ import org.redkale.net.client.ClientResult;
|
||||
* 详情见: https://redkale.org
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <T> T
|
||||
*
|
||||
* @since 2.8.0
|
||||
*/
|
||||
public class HttpSimpleResult<T> extends HttpResult<T> implements ClientResult {
|
||||
public class WebResult<T> extends HttpResult<T> implements ClientResult {
|
||||
|
||||
int readState;
|
||||
|
||||
@@ -11,8 +11,8 @@ import org.redkale.boot.Application;
|
||||
import org.redkale.inject.ResourceFactory;
|
||||
import org.redkale.net.AsyncIOGroup;
|
||||
import org.redkale.net.http.HttpServer;
|
||||
import org.redkale.net.http.HttpSimpleClient;
|
||||
import org.redkale.net.http.HttpSimpleRequest;
|
||||
import org.redkale.net.http.WebClient;
|
||||
import org.redkale.net.http.WebRequest;
|
||||
import org.redkale.util.AnyValueWriter;
|
||||
|
||||
/**
|
||||
@@ -43,10 +43,10 @@ public class HttpSimpleClientTest {
|
||||
//Utility.sleep(50000);
|
||||
final AsyncIOGroup asyncGroup = new AsyncIOGroup(8192, 16);
|
||||
asyncGroup.start();
|
||||
HttpSimpleClient client = HttpSimpleClient.create(asyncGroup);
|
||||
WebClient client = WebClient.create(asyncGroup);
|
||||
InetSocketAddress addr = new InetSocketAddress("127.0.0.1", port);
|
||||
{
|
||||
HttpSimpleRequest req = HttpSimpleRequest.createPostPath("/test").param("id", 100);
|
||||
WebRequest req = WebRequest.createPostPath("/test").param("id", 100);
|
||||
System.out.println(client.getAsync("http://127.0.0.1:" + port + req.getPath() + "?id=100").join());
|
||||
System.out.println(client.sendAsync(addr, req).join());
|
||||
}
|
||||
@@ -55,7 +55,7 @@ public class HttpSimpleClientTest {
|
||||
final CountDownLatch cdl = new CountDownLatch(count);
|
||||
for (int i = 100; i < 100 + count; i++) {
|
||||
final int index = i;
|
||||
HttpSimpleRequest req = HttpSimpleRequest.createPostPath("/test").param("id", index);
|
||||
WebRequest req = WebRequest.createPostPath("/test").param("id", index);
|
||||
client.getAsync("http://127.0.0.1:" + port + req.getPath() + "?id=" + index).whenComplete((v, t) -> {
|
||||
cdl.countDown();
|
||||
Assertions.assertEquals("ok-" + index, new String((byte[]) v.getResult()));
|
||||
@@ -68,7 +68,7 @@ public class HttpSimpleClientTest {
|
||||
final CountDownLatch cdl = new CountDownLatch(count);
|
||||
for (int i = 100; i < 100 + count; i++) {
|
||||
final int index = i;
|
||||
HttpSimpleRequest req = HttpSimpleRequest.createPostPath("/test").param("id", index);
|
||||
WebRequest req = WebRequest.createPostPath("/test").param("id", index);
|
||||
client.sendAsync(addr, req).whenComplete((v, t) -> {
|
||||
cdl.countDown();
|
||||
System.out.println("输出: " + new String((byte[]) v.getResult()));
|
||||
|
||||
@@ -6,9 +6,9 @@ package org.redkale.test.http;
|
||||
import java.lang.reflect.Field;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.redkale.mq.spi.HttpSimpleRequestCoder;
|
||||
import org.redkale.mq.spi.WebRequestCoder;
|
||||
import org.redkale.net.client.ClientRequest;
|
||||
import org.redkale.net.http.HttpSimpleRequest;
|
||||
import org.redkale.net.http.WebRequest;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -28,10 +28,10 @@ public class RequestCoderTest {
|
||||
|
||||
@Test
|
||||
public void run1() throws Exception {
|
||||
HttpSimpleRequest req1 = HttpSimpleRequest.createPostPath("/aaa");
|
||||
WebRequest req1 = WebRequest.createPostPath("/aaa");
|
||||
System.out.println("simpleRequest1: " + req1);
|
||||
byte[] bytes = HttpSimpleRequestCoder.getInstance().encode(req1);
|
||||
HttpSimpleRequest req2 = HttpSimpleRequestCoder.getInstance().decode(bytes);
|
||||
byte[] bytes = WebRequestCoder.getInstance().encode(req1);
|
||||
WebRequest req2 = WebRequestCoder.getInstance().decode(bytes);
|
||||
Field timeFiedl = ClientRequest.class.getDeclaredField("createTime");
|
||||
timeFiedl.setAccessible(true);
|
||||
timeFiedl.set(req2, req1.getCreateTime());
|
||||
@@ -41,12 +41,12 @@ public class RequestCoderTest {
|
||||
|
||||
@Test
|
||||
public void run2() throws Exception {
|
||||
HttpSimpleRequest req1 = HttpSimpleRequest.createPostPath("/aaa");
|
||||
WebRequest req1 = WebRequest.createPostPath("/aaa");
|
||||
req1.addHeader("X-aaa", "aaa");
|
||||
req1.param("bean", "{}");
|
||||
System.out.println("simpleRequest1: " + req1);
|
||||
byte[] bytes = HttpSimpleRequestCoder.getInstance().encode(req1);
|
||||
HttpSimpleRequest req2 = HttpSimpleRequestCoder.getInstance().decode(bytes);
|
||||
byte[] bytes = WebRequestCoder.getInstance().encode(req1);
|
||||
WebRequest req2 = WebRequestCoder.getInstance().decode(bytes);
|
||||
Field timeFiedl = ClientRequest.class.getDeclaredField("createTime");
|
||||
timeFiedl.setAccessible(true);
|
||||
timeFiedl.set(req2, req1.getCreateTime());
|
||||
@@ -56,14 +56,14 @@ public class RequestCoderTest {
|
||||
|
||||
@Test
|
||||
public void run3() throws Exception {
|
||||
HttpSimpleRequest req1 = HttpSimpleRequest.createPostPath("/aaa");
|
||||
WebRequest req1 = WebRequest.createPostPath("/aaa");
|
||||
req1.addHeader("X-aaa", "aaa");
|
||||
req1.addHeader("X-bbb", "bbb1");
|
||||
req1.addHeader("X-bbb", "bbb2");
|
||||
req1.param("bean", "{}");
|
||||
System.out.println("simpleRequest1: " + req1);
|
||||
byte[] bytes = HttpSimpleRequestCoder.getInstance().encode(req1);
|
||||
HttpSimpleRequest req2 = HttpSimpleRequestCoder.getInstance().decode(bytes);
|
||||
byte[] bytes = WebRequestCoder.getInstance().encode(req1);
|
||||
WebRequest req2 = WebRequestCoder.getInstance().decode(bytes);
|
||||
Field timeFiedl = ClientRequest.class.getDeclaredField("createTime");
|
||||
timeFiedl.setAccessible(true);
|
||||
timeFiedl.set(req2, req1.getCreateTime());
|
||||
|
||||
Reference in New Issue
Block a user