当前位置: 首页 > 文档资料 > easyopen 中文文档 >

常见问题

优质
小牛编辑
117浏览
2023-12-01

服务请求(x)超时

核对客户端时间跟服务器时间,误差不能超过3秒。调大误差变为5秒,使用apiConfig.setTimeoutSeconds(5);

最好是做服务器时间同步

在业务方法中如何获取request对象?

ApiContext.getRequest()

SDK加密传输json解析错误

如果使用了shiro等权限框架,注意配置url,IndexController里面有多个url,除了api,还有api/doc,api/ssl等,这些url都需要允许访问 可以使用api*通配符来允许访问。

如何获取当前调用者的appKey?

ApiContext.getApiParam().fatchAppKey()

直接返回方法中的结果

@Api(name = "xxx"
            , wrapResult = false // 对结果不进行包装,直接将ApiResult转成json形式返回
            )
    public ApiResult fun(GoodsParam param) {
        ApiResult apiResult = new ApiResult();
        apiResult.setCode(200);
        apiResult.setMsg("xxx");
        return apiResult;
    }

拦截器中使用spring注入

// 第一步

@Component // 加这个注解
public class MyInterceptor extends ApiInterceptorAdapter {
...
}

// 第二步

@Controller
@RequestMapping("/api")
public class IndexController extends ApiController {

    @Autowired
    private MyInterceptor myInterceptor;

    @Override
    protected void initApiConfig(ApiConfig apiConfig) {
        ...
        apiConfig.setInterceptors(new ApiInterceptor[]{myInterceptor});
        ...
    }

}