调用阿里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抓个包当例子