首页 > 解决方案 > 我们无法解码您的 NextToken。可能的原因包括:传输错误、不正确的引用或截断问题

问题描述

问题:我们无法解码您的 NextToken。可能的原因包括:传输错误、不正确的报价或在使用 NextToken 值访问亚马逊销售 enpoint getOrders API 时出现截断问题错误

nextToken=iAYGXEyagd6aJqJYLDm0ZIfVkJJPpovRdryNqjfPaIgg9hUJsk3DPQwtlDeM2mghxqXyQLkGMBs8VhF73Xgy 0lC3mC1SzpGl5YHgZCa7BDKYu8QTdnkAITZqJeSW7tJInTAy XKVmRZBY oaVuyc8QON K1yc/Y6mKKWPJTYqxJASkEew64xp6vE53eCWYOf2GLmUGyr9UGnxD0RJmrryegoU0IPZxXDmflVin9AbefZ6iCRhULKp103vYt7V5hMBO/reDY2s8hGWNNu3VwFU0hrIUQcumUIIYkgmdzyCpNQzRAUqdu/jzY7WGQwHDOWh6eH2mzao0RSPB0n 5LC/yAULdxUEMyUhl2OGtBpE5P8rTgv6Pn3rcTR/rGtYbyw9WyW4t8nDBlt8msQODE5D/2DVeWLo9hEsqGJJJsu8 Pnp7zXB4uNQJUR5kP8q rofIA3nWZ0bLPZjTnVM/HGQ==iAYGXEyagd6aJqJYLDm0ZIfVkJJPpovRdryNqjfPaIgg9hUJsk3DPQwtlDeM2mghxqXyQLkGMBs8VhF73Xgy 0lC3mC1SzpGl5YHgZCa7BDKYu8QTdnkAITZqJeSW7tJInTAy XKVmRZBY oaVuyc8QON K1yc/Y6mKKWPJTYqxJASkEew64xp6vE53eCWYOf2GLmUGyr9UGnxD0RJmrryegoU0IPZxXDmflVin9AbefZ6iCRhULKp103vYt7V5hMBO/reDY2s8hGWNNu3VwFU0hrIUQcumUIIYkgmdzyCpNQzRAUqdu/jzY7WGQwHDOWh6eH2mzao0RSPB0n5LC/yAULdxUEMyUhl2OGtBpE5P8rTgv6Pn3rcTR/rGtYbyw9WyW4t8nDBlt8msQODE5D/2DVeWLo9hEsqGJJJsu8 Pnp7zXB4uNQJUR5kP8q rofIA3nWZ0bLPZjTnVM/HGQ==

String uri = UriComponentsBuilder.fromHttpUrl(applicationConfig.getBaseURL() + applicationConfig.getOrdersApi())
                                        .queryParam("CreatedAfter", "2017-01-20T19:49:35Z")
                                        .queryParam("MarketplaceIds", "XXXXXX")
                                        .queryParam("MaxResultsPerPage", request.getBatchSize())
                                        .queryParam("NextToken", UriUtils.encode(nextTokenValue, StandardCharsets.UTF_8))
                                        .build().toUri().toString();

                                restTemplate.setRequestFactory(clientHttpRequestFactory(tokenResponse));
                                 restTemplate.exchange(uri, HttpMethod.GET, entity, AmazonSellingOrders.class);

我正在尝试使用 UriUtils.encode 方法对 nextToken 进行编码。该值按预期进行编码,然后通过 resTemplate 交换传递给 aws 签名者。

但继续获取我们无法解码您的 NextToken。可能的原因包括:传输错误、不正确的引用或在使用 NextToken 值 org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: [{ "errors": [ { "消息”:空,“代码”:“无效输入”}]}]

任何信息/帮助表示赞赏。

谢谢

标签: javaresttemplateamazonsellercentral

解决方案


我曾经也有过一样的问题。我正在通过 shell_exec 使用 PHP 和 cURL 命令,但我认为这个问题可能涉及其他语言/接口(我在使用 Postman.com 时也遇到了问题)。我通过预编码 NextToken 值来临时解决它,分别用 %2B 和 %3D 替换 + 和 = 符号。亚马逊正确接收了该参数,并且签名也可以正常工作。


推荐阅读