shikeying
2024-01-11 3b67e947e36133e2a40eb2737b15ea375e157ea0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.walker.remote;
 
import com.walker.api.client.ResponseData;
import org.apache.hc.client5.http.cookie.CookieStore;
 
import java.util.Map;
 
/**
 * 远程访问接口定义,系统最基本的核心接口之一。</p>
 * 通过该接口可以远程调用各种服务,如:socket、http、webservice等
 * @author shikeying
 * @date 2015-2-7
 *
 */
public interface RemoteAccessor{
 
    /**
     * 同步远程服务调用。
     * @param methodName
     * @param simpleData
     * @param jsonParameter
     * @param responseData 给定一个响应对象的实例,如:new ResponseLogin()
     * @return
     */
    public abstract <T> T requestTextSync(String methodName, Map<String, String> simpleData,
            String jsonParameter, ResponseData<T> responseData);
    
    
    /**
     * 设置调用接口对传输内容的加密方式,可能有多种实现,需要调用方配置一个。<br>
     * 如果不设置,系统默认使用<code>Base64</code>进行简单编码。
     * @param byteCoder
     */
    void setContentEncoder(AbstractByteCoder byteCoder);
    
    /**
     * 设置访问服务端的基础路径,如:http://www.abc.com:8080/app/request.do
     * @param baseUrl
     */
    void setBaseUrl(String baseUrl);
    
    /**
     * 设置客户端证书信息,双向认证使用
     * @param doubleTrust
     */
    void setDoubleTrust(DoubleTrust doubleTrust);
    
//    public abstract void setTimeRecorder(TimeRecorder timeRecorder);
 
    <T> T requestTextSyncWithCookie(String methodName, Map<String, String> simpleData, String jsonParameter, ResponseData<T> responseData, CookieStore cookieStore);
 
    <T> T requestSyncDelete(String methodName, String jsonParameter, Map<String, String> header, ResponseData<T> responseData);
 
 
    <T> T requestSyncPut(String methodName, String jsonParameter, Map<String, String> header, ResponseData<T> responseData);
 
 
    <T> T requestSyncPost(String methodName, String jsonParameter, Map<String, String> header, ResponseData<T> responseData);
 
 
    <T> T requestSyncWithoutGet(String methodName, String jsonParameter, String methodType, Map<String, String> header, ResponseData<T> responseData);
 
 
    <T> T requestSync(String methodName, Map<String, String> simpleData, String jsonParameter, String methodType, String contentType, Map<String, String> header, ResponseData<T> responseData);
 
    /**
     * 默认的提交json格式数据的参数名字,不能直接提交json,必须添加表单名称,<br>
     * 否则服务端无法接收参数。
     */
    public static final String DEFALUT_FORM_DATA_NAME = "datas";
    
    /**
     * 响应返回的结果中以特殊标志开头的内容:此时表示http请求返回的不是html内容,而是重新跳转等额外信息
     */
    public static final String RESPONSE_EXT_ID = "ext//";
    
}