java - 我们无法解码您的 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": [ { "消息”:空,“代码”:“无效输入”}]}]
任何信息/帮助表示赞赏。
谢谢
解决方案
我曾经也有过一样的问题。我正在通过 shell_exec 使用 PHP 和 cURL 命令,但我认为这个问题可能涉及其他语言/接口(我在使用 Postman.com 时也遇到了问题)。我通过预编码 NextToken 值来临时解决它,分别用 %2B 和 %3D 替换 + 和 = 符号。亚马逊正确接收了该参数,并且签名也可以正常工作。
推荐阅读
- airflow - 气流审核日志
- bash - 使用ffmpeg在循环中更改bash变量
- c# - 在 ASP.Net 核心中将所有 Caps 属性名称的默认 camelCase 序列化为 JSON 的问题
- python - python单元测试我的密码验证代码
- jquery - History.pushstate 不能再返回一次
- rest - 使用 MockRestServiceServer 时无法精确测试服务调用次数
- c# - 打开或关闭网站维护模式的键值始终重定向到维护页面
- django - 子类化 django-registration ActivationView 总是产生“您提供的激活密钥无效。”?
- java - 如何在自定义页面中使用 HATEOAS
- php - 教义 - 以一对多关系替换项目