develog

[postman] pre-request 에서 base64 로 인코딩 후 요청하기 본문

카테고리 없음

[postman] pre-request 에서 base64 로 인코딩 후 요청하기

냐옴 2025. 1. 10. 10:20

 

Request > Script > Pre-request 에 함수를 등록하고 사용하기

 

const btoa = require('btoa');
// query string
function query_string_base64 (paramName) {
    let oldValue = pm.request.url.query.get(paramName);
    let newValue = btoa(oldValue);
    pm.request.url.query.remove(paramName);
    pm.request.url.query.add({key: paramName, value: newValue});
};
// path variable
function path_variable_base64 (...paramNames) {
    paramNames.each(paramName => {
        let oldValue = pm.request.url.variables.get(paramName);
        let newValue = btoa(oldValue);
        pm.request.url.variables.each((field) => {
            if (field.key === paramName) {
                field.value = newValue;
            }
        });
    });
};
// formdata
function formdata_base64 (paramName) {
    let formdata = pm.request.body.formdata;
    let oldValue = formdata.get(paramName);
    let newValue = btoa(oldValue);
    formdata.remove(paramName);
    formdata.add({key: paramName, value: newValue});
}
// body json
function bodyJson_base64 (paramName) {
    let jsonBody = JSON.parse(pm.request.body.raw);
    let oldValue = jsonBody[paramName];
    let newValue = btoa(oldValue);
    jsonBody[paramName] = newValue;
    pm.request.body.raw = JSON.stringify(jsonBody);
}
// eval(`${pm.globals.get('my_utils')}`);
console.log('pm.request.url', pm.request.url.toString());
query_string_base64('email');
path_variable_base64('email', 'authCode');
// formdata_base64('formdata1');
bodyJson_base64('json_data1');
console.log('pm.request.url', pm.request.url.toString());

 

 

Globals 변수에 함수를 등록하고 사용하기

Globals 변수에 함수를 등록한다

Pre-request 에서 사용하기

// my_utils Globals 변수를 로드
eval(`${pm.globals.get('my_utils')}`);

// 로드된 함수 사용하기
query_string_base64('email');
path_variable_base64('mobileOrEmail', 'authCode');
// formdata_base64('formdata1');
// bodyJson_base64('json_data1');

Comments