1 package fr.ifremer.quadrige3.core.service.http;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import com.google.gson.Gson;
24 import fr.ifremer.quadrige3.core.ProgressionCoreModel;
25 import fr.ifremer.quadrige3.core.security.AuthenticationInfo;
26 import org.apache.http.client.methods.HttpPost;
27 import org.apache.http.client.methods.HttpUriRequest;
28 import org.apache.http.entity.mime.content.ContentBody;
29 import org.apache.http.impl.client.CloseableHttpClient;
30
31 import java.io.File;
32 import java.io.IOException;
33 import java.lang.reflect.Type;
34 import java.net.URI;
35 import java.util.Map;
36
37
38
39
40 public interface HttpService {
41
42 CloseableHttpClient getHttpClient(AuthenticationInfo authenticationInfo);
43
44 Gson getGson();
45
46 URI getPathUri(String... paths);
47
48 void executeRequest(AuthenticationInfo authenticationInfo,
49 HttpUriRequest request);
50
51 <T> T executeRequest(AuthenticationInfo authenticationInfo,
52 HttpUriRequest request,
53 Class<? extends T> resultClass);
54
55 <T> T executeRequest(AuthenticationInfo authenticationInfo,
56 HttpUriRequest request,
57 Class<? extends T> resultClass,
58 boolean allowNullResult);
59
60 <T> T executeRequest(AuthenticationInfo authenticationInfo,
61 HttpUriRequest request,
62 Type type);
63
64 void executeDownloadFileRequest(AuthenticationInfo authenticationInfo,
65 HttpUriRequest request,
66 ProgressionCoreModel progressionModel,
67 File outputFile) throws IOException;
68
69 void executeUploadFileRequest(AuthenticationInfo authenticationInfo,
70 HttpPost request,
71 ProgressionCoreModel progressionModel,
72 File inputFile,
73 Map<String, ContentBody> additionalParts);
74
75 }