微信小程序-获取手机号:HttpClientErrorException: 412 Precondition Failed: [no body]

问题:

412 异常就是你的请求参数获取请求头与服务器的不符,缺少请求体!

我的问题:

我这里获取微信手机号的时候突然给我报错142,但是代码用的是原来的代码,换了一个框架就噶了!

排查问题:

1.检查了一下各个方法的版本,版本一致!

2.检查了一下 小程序的appid和secret都是对应上的!

3.又拿原来的对比了一下,原来的框架可以获取,新的就不行!

解决问题:

换了一个请求方式后,发现前端传过来的参数是个JOSN字符串!

然后我又把JOSN字符串封装成一个Map再转化成JOSN字符串去请求,变成了:

{code:{code:巴拉巴拉}}

微信官方请求的方式是:

问题找到,要么叫前端改,要么自己改。

后端获取手机号解决问题版:

        String accessToken = 你的Token;
        String code= 前端的code;
        String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + accessToken;

        HttpHeaders headers = new HttpHeaders();
        RestTemplate restTemplate = new RestTemplate();
        HttpEntity<Map<String, String>> httpEntity;
        if (code.contains("code")) {
            httpEntity = new HttpEntity(code,headers);
        }else {
            Map<String, String> params = new HashMap<>();
            params.put("code", code);
            httpEntity = new HttpEntity(params,headers);
        }

        ResponseEntity<Object> response = restTemplate.postForEntity(url, httpEntity, Object.class, new Object[0]);

前方道路坎坷,同志们还需努力!

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的错误信息,出现了一个关于Keras的错误前提条件(Failed precondition):找不到变量`bn4f_branch2a/beta`。 根据错误信息来看,问题出现在命名为`bn4f_branch2a`的层的`beta`变量上。Keras中的层的命名通常遵循一定的命名规则,这里`bn4f_branch2a`可能代表的是一个批归一化(Batch Normalization)层。 批归一化是深度学习中常用的技术之一,用于加速神经网络的训练过程并提高模型的性能。该操作包括对输入数据进行归一化处理,以确保数据在激活函数的输入范围内。在Keras中,每个批归一化层都包含多个参数/变量,如`beta`、`gamma`、`moving_mean`和`moving_variance`等。 出现找不到`bn4f_branch2a/beta`的错误可能有以下几个原因: 1. 模型中没有命名为`bn4f_branch2a/beta`的批归一化层,可能是拼写错误或者网络结构中未正确定义该层。 2. 在训练过程中,由于某些原因导致`bn4f_branch2a/beta`的变量未被正确加载,例如模型加载时出现了问题。 3. 数据在训练过程中通过该批归一化层时,维度匹配出现了错误,导致无法正确找到对应的变量。 解决这个错误,首先应该检查代码中是否正确定义了`bn4f_branch2a/beta`的批归一化层。如果模型结构正确,可以尝试重新加载模型或者使用其他方法来验证输入数据和网络结构的一致性,确保变量维度匹配。 总之,根据错误信息,我们可以推断出问题出现在找不到`bn4f_branch2a/beta`变量上,可能是由于模型结构、加载过程或者数据维度不一致等原因导致的。解决这个问题的关键是仔细检查代码,确保正确定义模型并在训练和推断过程中正确加载和使用模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值