美文网首页
POST请求的几种形式

POST请求的几种形式

作者: Hsugar | 来源:发表于2019-02-26 11:30 被阅读0次

    最近在项目对接(后台java)中,发现一些常见的问题。post的header、传参几种形式的不同:

    1. x-www-form-urlencoded
    response = await axios({
        method: type,
        url: url,
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'signature': signature,
        },
        transformRequest: [function (data) {
            data = qs.stringify(data)
            return data
        }],
        data: params
    })
    
    1. formData
    let formData = new FormData();
    for (let key in params) {
        formData.append(key, params[key])
    }
    response = await axios({
        method: type,
        url: url,
        headers: {
            'Content-Type': 'application/json',
            'signature': '',
        },
        data:  formData
    })
    
    1. json 这种相对简单
    data: JSON.stringify(data)  这样即可
    

    安利一波加密签名~
    为了安全,我们在项目中采取了加密签名算法。下面封装了几种方法:
    ps:具体的方法操作就不透漏啦 ^ ^

    //排序的函数
    // {name: 'a', age: 12} => {age:12, name: 'a}
    function objKeySort(obj) {
        var newkey = Object.keys(obj).sort();
        //先用Object内置类的keys方法获取要排序对象的属性名,再利用Array原型上的sort方法对获取的属性名进行排序,newkey是一个数组
        var newObj = {}; //创建一个新的对象,用于存放排好序的键值对
        for (var i = 0; i < newkey.length; i++) { //遍历newkey数组
            newObj[newkey[i]] = obj[newkey[i]]; //向新创建的对象中按照排好的顺序依次增加键值对
        }
        return newObj; //返回排好序的新对象
    }
    
    /**
     * 分解拼接参数
     * @param {String} param 
     * @param {*} key 
     */
    function parseParam(param, key) {
        if (param == null) return '';
        var paramStr = '';
        var t = typeof (param);
        if (t == 'string' || t == 'number' || t == 'boolean') {
            paramStr += '&' + key + '=' + (param);
        } else {
            for (var i in param) {
                // var k = key ? i : key + (param instanceof Array ? '[' + i + ']' : (param instanceof Object ? '.' : '') + i); 
                // var k = key ? i : key + i;
                // paramStr += parseParam(param[i], k);
                paramStr += parseParam(param[i], i);
            }
        }
        return paramStr;
    }
    

    相关文章

      网友评论

          本文标题:POST请求的几种形式

          本文链接:https://www.haomeiwen.com/subject/tqtayqtx.html