微信小程序的 wx.request POST方法的http报文格式不符合HTTP 1.1协议规范:
HTTP报文的头部字段与正文之间的间隔是两个空行,按HTTP 1.1协议规范应为一个空行。
代码如下:
wx.request({
url: 'http://192.168.8.1:80/upload_finish',
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded' ,
},
data: {
user: ssid_get,
password: pwd_get
},
success(res) {
//console.log(res.data);
that.setData({massage1:"设置成功!"});
that.setData({hidden_close:false});
that.modalTap2();
},
fail(err) {
console.log('请求失败', err);
that.setData({massage1:"设置失败!"})
that.modalTap2();
},
抓包后报文如下:
POST /upload_finish HTTP/1.1
Host: 192.168.8.1
Connection: keep-alive
Content-Length: 59
content-type: application/x-www-form-urlencoded
charset: utf-8
User-Agent: Mozilla/5.0 (Linux; Android 12; ADY-AL10 Build/HUAWEIADY-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/134.0.6998.136 Mobile Safari/537.36 XWEB/1340095 MMWEBSDK/20250201 MMWEBID/457 MicroMessenger/8.0.58.2841(0x28003A3C) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android
Accept-Encoding: gzip, deflate
(注释:第一个空行)
(注释:第二个空行)
user=%E8%92%99%E6%89%98%E7%A7%91%E6%8A%80&password=12345678
因为这个BUG后端读取数据会出错,请微信小程序开发人员马上修补这个BUG. 拜托