23
23
/**
24
24
* Thin wrapper around Apache {@link HttpAsyncClient} to expose
25
25
* <a href="https://www.reactive-streams.org/">Reactive Streams</a> interfaces.<br>
26
- * The methods in this interface aim to mirror the ones in {@link HttpAsyncClient} and
27
- * {@link CloseableHttpAsyncClient}.
26
+ * The methods in this interface aim to mirror the ones in {@link HttpAsyncClient} and {@link
27
+ * CloseableHttpAsyncClient}.
28
28
*
29
29
* @author sli
30
30
* @see HttpReactiveClients
31
31
*/
32
32
public interface HttpReactiveClient {
33
33
34
34
/**
35
- * Execute the given request. This method is equivalent to
36
- * {@link HttpAsyncClient#execute(AsyncRequestProducer, AsyncResponseConsumer, HandlerFactory, HttpContext , FutureCallback)}.
37
- * If the {@link Future} produced by the equivalent {@link HttpAsyncClient} method completes with
38
- * {@code null}, then the returning {@link Publisher} of this method will complete with no
39
- * element.
35
+ * Execute the given request. This method is equivalent to {@link HttpAsyncClient#execute(AsyncRequestProducer,
36
+ * AsyncResponseConsumer, HandlerFactory, HttpContext, FutureCallback)}. If the {@link Future}
37
+ * produced by the equivalent {@link HttpAsyncClient} method completes with {@code null}, then the
38
+ * returning {@link Publisher} of this method will complete with no element.
40
39
*/
41
40
<T > Publisher <T > execute (@ Nonnull AsyncRequestProducer requestProducer ,
42
41
@ Nonnull AsyncResponseConsumer <T > responseConsumer ,
43
42
@ Nullable HandlerFactory <AsyncPushConsumer > pushHandlerFactory ,
44
43
@ Nullable HttpContext context );
45
44
46
45
/**
47
- * Convenience method for
48
- * {@link #execute(AsyncRequestProducer, AsyncResponseConsumer, HandlerFactory, HttpContext)},
49
- * equivalent to
50
- * {@link CloseableHttpAsyncClient#execute(AsyncRequestProducer, AsyncResponseConsumer, HttpContext, FutureCallback)}
46
+ * Convenience method for {@link #execute(AsyncRequestProducer, AsyncResponseConsumer,
47
+ * HandlerFactory, HttpContext)}, equivalent to {@link CloseableHttpAsyncClient#execute(AsyncRequestProducer,
48
+ * AsyncResponseConsumer, HttpContext, FutureCallback)}
51
49
*/
52
50
default <T > Publisher <T > execute (@ Nonnull AsyncRequestProducer requestProducer ,
53
51
@ Nonnull AsyncResponseConsumer <T > responseConsumer , @ Nullable HttpContext context ) {
54
52
return execute (requestProducer , responseConsumer , null , context );
55
53
}
56
54
57
55
/**
58
- * Convenience method for
59
- * {@link #execute(AsyncRequestProducer, AsyncResponseConsumer, HandlerFactory, HttpContext)},
60
- * equivalent to
61
- * {@link CloseableHttpAsyncClient#execute(AsyncRequestProducer, AsyncResponseConsumer, FutureCallback)}.
56
+ * Convenience method for {@link #execute(AsyncRequestProducer, AsyncResponseConsumer,
57
+ * HandlerFactory, HttpContext)}, equivalent to {@link CloseableHttpAsyncClient#execute(AsyncRequestProducer,
58
+ * AsyncResponseConsumer, FutureCallback)}.
62
59
*/
63
60
default <T > Publisher <T > execute (@ Nonnull AsyncRequestProducer requestProducer ,
64
61
@ Nonnull AsyncResponseConsumer <T > responseConsumer ) {
@@ -67,63 +64,62 @@ default <T> Publisher<T> execute(@Nonnull AsyncRequestProducer requestProducer,
67
64
68
65
/**
69
66
* Execute a simple in-memory request and get a simple in-memory response. This method is
70
- * equivalent to
71
- * {@link CloseableHttpAsyncClient#execute(SimpleHttpRequest, HttpContext, FutureCallback)}. The
72
- * returning {@link Publisher} completes with exactly 1 element.
67
+ * equivalent to {@link CloseableHttpAsyncClient#execute(SimpleHttpRequest, HttpContext,
68
+ * FutureCallback)}. The returning {@link Publisher} completes with exactly 1 element.
73
69
*/
74
70
default Publisher <SimpleHttpResponse > execute (@ Nonnull SimpleHttpRequest request ,
75
71
@ Nullable HttpContext context ) {
76
72
return execute (SimpleRequestProducer .create (request ), SimpleResponseConsumer .create (), context );
77
73
}
78
74
79
75
/**
80
- * Convenience method for {@link #execute(SimpleHttpRequest, HttpContext)}, equivalent to
81
- * {@link CloseableHttpAsyncClient#execute(SimpleHttpRequest, FutureCallback)}.
76
+ * Convenience method for {@link #execute(SimpleHttpRequest, HttpContext)}, equivalent to {@link
77
+ * CloseableHttpAsyncClient#execute(SimpleHttpRequest, FutureCallback)}.
82
78
*/
83
79
default Publisher <SimpleHttpResponse > execute (@ Nonnull SimpleHttpRequest request ) {
84
80
return execute (request , null );
85
81
}
86
82
87
83
/**
88
- * Execute the given request and get a streaming response body as a {@link Publisher} of
89
- * {@link ByteBuffer}s. The returning {@link Publisher} completes with exactly 1 element. The
90
- * {@link Publisher} within the returning {@link Publisher} may contain 0 to n elements.
84
+ * Execute the given request and get a streaming response body as a {@link Publisher} of {@link
85
+ * ByteBuffer}s. The returning {@link Publisher} completes with exactly 1 element. The {@link
86
+ * Publisher} within the returning {@link Publisher} may contain 0 to n elements.
91
87
*/
92
88
Publisher <Message <HttpResponse , Publisher <ByteBuffer >>> streamingExecute (
93
89
@ Nonnull AsyncRequestProducer requestProducer ,
94
90
@ Nullable HandlerFactory <AsyncPushConsumer > pushHandlerFactory ,
95
91
@ Nullable HttpContext context );
96
92
97
93
/**
98
- * Convenience method for
99
- * {@link #streamingExecute(AsyncRequestProducer, HandlerFactory, HttpContext)}
94
+ * Convenience method for {@link #streamingExecute(AsyncRequestProducer, HandlerFactory,
95
+ * HttpContext)}
100
96
*/
101
97
default Publisher <Message <HttpResponse , Publisher <ByteBuffer >>> streamingExecute (
102
98
@ Nonnull AsyncRequestProducer requestProducer , @ Nullable HttpContext context ) {
103
99
return streamingExecute (requestProducer , null , context );
104
100
}
105
101
106
102
/**
107
- * Convenience method for
108
- * {@link #streamingExecute(AsyncRequestProducer, HandlerFactory, HttpContext)}
103
+ * Convenience method for {@link #streamingExecute(AsyncRequestProducer, HandlerFactory,
104
+ * HttpContext)}
109
105
*/
110
106
default Publisher <Message <HttpResponse , Publisher <ByteBuffer >>> streamingExecute (
111
107
@ Nonnull AsyncRequestProducer requestProducer ) {
112
108
return streamingExecute (requestProducer , null );
113
109
}
114
110
115
111
/**
116
- * Execute a simple in-memory request and get a streaming response. Convenience method for
117
- * {@link #streamingExecute(AsyncRequestProducer, HandlerFactory, HttpContext)}
112
+ * Execute a simple in-memory request and get a streaming response. Convenience method for {@link
113
+ * #streamingExecute(AsyncRequestProducer, HandlerFactory, HttpContext)}
118
114
*/
119
115
default Publisher <Message <HttpResponse , Publisher <ByteBuffer >>> streamingExecute (
120
116
@ Nonnull SimpleHttpRequest request , @ Nullable HttpContext context ) {
121
117
return streamingExecute (SimpleRequestProducer .create (request ), context );
122
118
}
123
119
124
120
/**
125
- * Convenience method for
126
- * {@link #streamingExecute(AsyncRequestProducer, HandlerFactory, HttpContext)}
121
+ * Convenience method for {@link #streamingExecute(AsyncRequestProducer, HandlerFactory,
122
+ * HttpContext)}
127
123
*/
128
124
default Publisher <Message <HttpResponse , Publisher <ByteBuffer >>> streamingExecute (
129
125
@ Nonnull SimpleHttpRequest request ) {
0 commit comments