-->
当前位置:首页 > DayDayUp > 正文内容

调用阿里CSB包调用api过程中api字段与version字段的放置位置与字段名称

Luz1年前 (2023-11-20)DayDayUp1526

问题现象

甲方需要调用一个接口,接口文档含糊,接口代码使用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里也不行。翻阅官方源码,一层套一层乱的很。

https://github.com/aliyun/csb-sdk/blob/master/http-client/src/main/java/com/alibaba/csb/sdk/HttpCaller.java

https://github.com/aliyun/csb-sdk/blob/master/http-client/src/main/java/com/alibaba/csb/sdk/HttpParameters.java


解决方案

网上找到一个调用csb Builder的抓包图,虽然问题不一样,但是好歹能看出来字段叠在哪里了。

image.png

都放在header头里,相关名称为:

api: _api_name

version: _api_verison

总结

接口文档写的太烂了,示例代码也不行,还不如直接wireshark抓个包当例子


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。