package com.walker.remote; import com.walker.api.client.ResponseData; import org.apache.hc.client5.http.cookie.CookieStore; import java.util.Map; /** * 远程访问接口定义,系统最基本的核心接口之一。

* 通过该接口可以远程调用各种服务,如: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 requestTextSync(String methodName, Map simpleData, String jsonParameter, ResponseData responseData); /** * 设置调用接口对传输内容的加密方式,可能有多种实现,需要调用方配置一个。
* 如果不设置,系统默认使用Base64进行简单编码。 * @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 requestTextSyncWithCookie(String methodName, Map simpleData, String jsonParameter, ResponseData responseData, CookieStore cookieStore); T requestSyncDelete(String methodName, String jsonParameter, Map header, ResponseData responseData); T requestSyncPut(String methodName, String jsonParameter, Map header, ResponseData responseData); T requestSyncPost(String methodName, String jsonParameter, Map header, ResponseData responseData); T requestSyncWithoutGet(String methodName, String jsonParameter, String methodType, Map header, ResponseData responseData); T requestSync(String methodName, Map simpleData, String jsonParameter, String methodType, String contentType, Map header, ResponseData responseData); /** * 默认的提交json格式数据的参数名字,不能直接提交json,必须添加表单名称,
* 否则服务端无法接收参数。 */ public static final String DEFALUT_FORM_DATA_NAME = "datas"; /** * 响应返回的结果中以特殊标志开头的内容:此时表示http请求返回的不是html内容,而是重新跳转等额外信息 */ public static final String RESPONSE_EXT_ID = "ext//"; }