大概是因为微信服务器不支持 Chunked Transfer Coding 请求,而客户端发的请求体却是 Transfer-Encoding: chunked 编码所致。 可以试试在配置 RestTemplateBuilder 时,将 requestFactory 用 BufferingClientHttpRequestFactory 包一下。 参考资料:https://github.com/spring-projects/spring-framework/issues/31797#issuecomment-1850081007
获取稳定版接口调用凭据报错 412 Precondition Failed , 怎么回事?获取微信稳定版接口调用凭证报错 412 Precondition Failed , 是咋回事呢? // org.springframwork.web.cleint.HttpClientErrorException: 412 Precondition Failed API: https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/getStableAccessToken.html 代码如下: @Data @Builder @AllArgsConstructor @NoArgsConstructor public class AccessTokenParam { /** * 固定值:client_credential */ private String grant_type; /** * APPID */ private String appid; /** * secret */ private String secret; } AccessTokenParam accessTokenParam = AccessTokenParam.builder() .grant_type(GRANT_TYPE) .appid(appID) .secret(accountSecret) .build(); // 该行报错 org.springframwork.web.cleint.HttpClientErrorException: 412 Precondition Failed String res = restTemplate.postForObject(URL, accessTokenParam, String.class);
2024-11-12将返回 JSON 的 API 的 Content-Type 设置为 text/plain,确实让人感觉不专业。 而且,很奇葩的是,如果你不带参数去调用 /sns/jscode2session,会返回 Content-Type: application/json;但如果带上正确的参数去调用 /sns/jscode2session,就会返回 Content-Type: text/plain,如下图: [图片] 社区中已经有不少开发者反馈过 Content-Type 不对的问题: https://developers.weixin.qq.com/community/develop/doc/0004ee74718d9897fca67d0c35e400 https://developers.weixin.qq.com/community/develop/doc/00088e5987c4c8e1f4eaa9b4c5a400 https://developers.weixin.qq.com/community/develop/doc/000c464f6501d82b074d5f5055b000 https://developers.weixin.qq.com/community/develop/doc/0000667e480a685a63b0c8bf666c00 Content-Type 不是什么无关紧要的元数据,错误的 Content-Type 会影响一些库对内容的解析。例如,在默认配置下,Spring 框架的 RestClient 遇到 text/plain 时,从 JSON 到 Java 对象的自动转换就无法按正常工作。(如果是在浏览器上,还可能会导致一些安全问题。) HTTP Response Header 的 Content-Type 不正确就是 bug。这个问题理应引起微信开放平台团队的重视。
小程序登录 code2Session Content-Type text/plain 响应内容类型https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-login/code2Session.html 过去这么多年了,响应内容类型还不改为正经的json,还用text/plain; GET、POST、PATCH、OPTIONS 都能请求到; 拉跨
2024-09-15