c***@139.com
c***@139.com
  • 发布:2023-07-01 17:47
  • 更新:2023-07-05 09:18
  • 阅读:265

【报Bug】uni.request无法有效实现发出的Http post消息头content-type为application/x-www-form-urlencoded

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.8.4

第三方开发者工具版本号: 1.06.2301160

基础库版本号: 不清楚

项目创建方式: HBuilderX

示例代码:

export const HttpRequest = (url, data, method) => {

let header = ""  

if (method == "POST") {  
    //header = "'content-type': 'application/json;charset:utf-8'"  
    header = "'content-type': 'application/x-www-form-urlencoded'"  
} else {  
    header = ""  
}  

return new Promise((resolve, reject) => {  

    let urls = BASE_URL + url  
    // console.log("地址", urls)  
    uni.request({  
        url:urls.replace (/\s*/g,"") ,  
        method: method || 'GET',  
        data: data || {},        //对于'content-type': 'application/json;charset:utf-8'  
        //data:data,             //对于'content-type': 'application/x-www-form-urlencoded'  
        header: {  
            header,  
        },  
        success: (res) => {  
            resolve(res)  
        },  
        //请求失败  
        fail: (err) => {  
            reject(err)  
        }  
    })  
})  

}

调用代码:
var code=e.detail.code;
var data={code:code};
//var data="code="+code;
HttpRequest("/wechat/weixin/getPhoneNumber/hznev",data,"POST");

操作步骤:

var code="dfdfdfdfdsdfewrf";
var data={code:code};
//var data="code="+code;
HttpRequest("/wechat/weixin/getPhoneNumber/hznev",data,"POST");

预期结果:

抓包确认发出的post消息头中content-type值为application/x-www-form-urlencoded

实际结果:

抓包确认发出的post消息头中content-type值总是不变为application/json

bug描述:

uni.request无论什么情况下发出的Http post消息头content-type总是application/json,无法修改为application/x-www-form-urlencoded。即使设置header = "'content-type': 'application/x-www-form-urlencoded'"也只是在http post消息头中的header字段中增加content-type': 'application/x-www-form-urlencoded',实际消息头中的content-type仍为application/json(如图)。无论如何修改uni.request调用的data数据格式也无法改变Http post消息头中content-type未application/x-www-form-urlencoded。

2023-07-01 17:47 负责人:无 分享
已邀请:
c***@139.com

c***@139.com (作者)

第二个图为希望预期正常发出的消息。

c***@139.com

c***@139.com (作者)

问题已定位,就是header = "'content-type': 'application/x-www-form-urlencoded'" 不能使用这种赋值,而只能采用header= {'content-type': 'application/x-www-form-urlencoded'}这种赋值。希望对遇到类似问题的朋友有帮助

要回复问题请先登录注册