之前项目接入过淘宝客API,API的调用也正常,但是最近发现发送API请求报错,提示无权限。
从官方文档发现最近的API已经进行过升级,原有的接口已经无法使用,再看了下最近的sdk包还是两年前下载的。
顺着这个思路往这个方向进行修复,在官网重新生成了最新的SDK包。
maven项目需要在pom.xml文件中引入下载好的jar包,但是注意需要打包的时候也要把本地下载的jar包打进去。
<build>\n <plugins>\n <plugin>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-maven-plugin</artifactId>\n <configuration>\n\n <!--加入这个includeSystemScope,解决引入第三方包后本地运行正常,打包后报错问题-->\n <includeSystemScope>true</includeSystemScope>\n </configuration>\n <!--加入这个includeSystemScope,解决引入第三方包后本地运行正常,打包后报错问题-->\n\n </plugin>\n </plugins>\n </build>jar包引入正常后,后面就是正常调用api了。
String serverUrl = "http://gw.api.taobao.com/router/rest";\n // 可替换为您的应用的AppKey\n String appKey = "xxx";\n // 可替换为您的应用的AppSecret\n String appSecret = "xxx";\n\n String pageNo = "1";\n String pageSize = "10";\n String keyWords = "数据线";\n // 初始化请求参数\n TaobaoClient client = new DefaultTaobaoClient(serverUrl, appKey, appSecret);\n TbkDgMaterialOptionalUpgradeRequest req = new TbkDgMaterialOptionalUpgradeRequest();\n req.setPageSize(Long.valueOf(pageSize)); // 页大小,默认20,1~100\n req.setPageNo(Long.valueOf(pageNo)); // 第几页,默认:1\n req.setQ(keyWords); // 商品筛选-查询词\n // 开始请求\n TbkDgMaterialOptionalUpgradeResponse rsp = client.execute(req);\n Map<String, Object> resultMap = new HashMap<>();\n ObjectMapper objectMapper = new ObjectMapper();\n // 转成Json\n Map map = objectMapper.readValue(rsp.getBody(), Map.class);\n Map tbk_dg_material_optional_response = (Map) map.get("tbk_dg_material_optional_upgrade_response");\n Map result_list = ((Map) tbk_dg_material_optional_response.get("result_list"));\n List map_data = ((List) result_list.get("map_data"));\n resultMap.put("result",map_data);\n log.info(map_data.toString());\n 最终map_data就是返回的json数据。