调用阿里CSB包调用api过程中api字段与version字段的放置位置与字段名称
问题现象
甲方需要调用一个接口,接口文档含糊,接口代码使用java+csb编写
private static String queryIndexData(Map<String, Object> param) throws Exception { HttpParameters.Builder hp = HttpParameters.newBuilder(); hp.requestURL(UserDomainConstant.URL) .api(UserDomainConstant.QUERY_API_NAME) .version(UserDomainConstant.VERSION) .putHeaderParamsMap("appKey",UserDomainConstant.APP_KEY) .putHeaderParamsMap("Content-Type","application/json") .accessKey(UserDomainConstant.ACCESS_KEY) .secretKey(UserDomainConstant.SECRET_KEY) .method(UserDomainConstant.METHOD); hp.contentBody(new ContentBody(JSONObject.toJSONString(param))); return HttpCaller.invoke(hp.build()); }
java不是主力语言 看傻眼了,这个api和version不知道在整个请求包里的什么位置。
试了一下拼接到url里也不行。翻阅官方源码,一层套一层乱的很。
解决方案
网上找到一个调用csb Builder的抓包图,虽然问题不一样,但是好歹能看出来字段叠在哪里了。
都放在header头里,相关名称为:
api: _api_name
version: _api_verison
总结
接口文档写的太烂了,示例代码也不行,还不如直接wireshark抓个包当例子