Skip to content

Commit 409903b

Browse files
committed
JSHttpClient second draft
1 parent db98923 commit 409903b

File tree

3 files changed

+258
-175
lines changed

3 files changed

+258
-175
lines changed

sources/net.sf.j2s.java.core/src/javajs/http/HttpClient.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.io.InputStream;
77
import java.net.URI;
88
import java.util.Map;
9+
import java.util.function.BiConsumer;
910
import java.util.function.Consumer;
1011

1112
/**
@@ -17,27 +18,28 @@
1718
*/
1819
public interface HttpClient {
1920

20-
public interface HttpRequestBuilder {
21+
public interface HttpRequest {
2122

2223
public String getMethod();
2324

2425
public URI getUri();
2526

26-
public HttpRequestBuilder addHeader(String name, String value);
27+
public HttpRequest addHeader(String name, String value);
2728

28-
public HttpRequestBuilder addParameter(String name, String value);
29+
public HttpRequest addParameter(String name, String value);
2930

30-
public HttpRequestBuilder addFile(String name, File file);
31+
public HttpRequest addFile(String name, File file);
3132

32-
public HttpRequestBuilder addFile(String name, InputStream stream);
33+
public HttpRequest addFile(String name, InputStream stream);
3334

3435
/**
3536
* Send the request to the server and return the response.
3637
*/
3738
public HttpResponse execute() throws IOException;
3839

39-
HttpResponse executeAsync(Consumer<? super HttpResponse> done, Consumer<? super HttpResponse> fail,
40-
Consumer<? super HttpResponse> always);
40+
HttpResponse executeAsync(Consumer<? super HttpResponse> success,
41+
BiConsumer<? super HttpResponse, Throwable> failure,
42+
BiConsumer<? super HttpResponse, Throwable> always);
4143
}
4244

4345
public interface HttpResponse extends Closeable {
@@ -80,32 +82,32 @@ public default void close() throws IOException {
8082
* Initialises the GET request builder. Usually they have no request body and
8183
* parameters are passed in the URL query.
8284
*/
83-
public HttpRequestBuilder get(URI uri);
85+
public HttpRequest get(URI uri);
8486

8587
/**
8688
* Initialises the GET request builder. They have no request body and parameters
8789
* are passed in the URL query. They are identical to GET requests, the only
8890
* difference is that the returned response contains headers only.
8991
*/
90-
public HttpRequestBuilder head(URI uri);
92+
public HttpRequest head(URI uri);
9193

9294
/**
9395
* Initialises the POST request builder. Usually they contain data in the
9496
* request body either as a urlencoded form, a multipart form or raw bytes.
9597
* Currently, we only care about the multipart form.
9698
*/
97-
public HttpRequestBuilder post(URI uri);
99+
public HttpRequest post(URI uri);
98100

99101
/**
100102
* Initialises the PUT request builder which construct the same way as POST. The
101103
* only difference is the request method.
102104
*/
103-
public HttpRequestBuilder put(URI uri);
105+
public HttpRequest put(URI uri);
104106

105107
/**
106108
* Initialises the DELETE request builder. The DELETE requests have no body and
107109
* parameters are passed in the URL query, just like GET.
108110
*/
109-
public HttpRequestBuilder delete(URI uri);
111+
public HttpRequest delete(URI uri);
110112

111113
}

0 commit comments

Comments
 (0)