2017-02-19 3 views
0

가맹점 시스템 용 REST API를 구현 중입니다. 이 판매자 시스템은 지불 확인 POST 요청을 시스템에 지정된 URL로 전송하며이 요청은 windows-1251로 인코딩됩니다. 로그 문nonUTF로 인코딩 된 POST 요청을위한 유티 라우팅

Router.route('/api/payments/result/',{where: "server", name: 'payments-result'}) 
    .post(function() { }); 

Router.onBeforeAction(function (req, res, next) { 
    logger.info('GOT A CONFIRMATION REQUEST'); 
    logger.info(`request headers are: ${req.rawHeaders}`); 
    logger.info('request is: '); 
    Object.keys(req.body).forEach(key => { 
     let val = req.body[key]; 
     logger.info(`${key} : ${val}`); 
    }); 

    res.end('hello from the server\n'); 
},{where: 'server', only: ['payments-result']}); 

없음이 실행되지 않습니다 :

내가이 요청을 처리하기 위해 철 라우터와 restivus을 시도했습니다

, 둘 다

UnsupportedMediaTypeError: unsupported charset "WINDOWS-1251" 
at Object.urlencodedParser [as handle] (/home/dev/builds/bundle/programs/server/npm/node_modules/meteor/simple_json-routes/node_modules/connect/node_modules/body-parser/lib/types/urlencoded.js:102:12) 
at next (/home/dev/builds/bundle/programs/server/npm/node_modules/meteor/webapp/node_modules/connect/lib/proto.js:174:15) 
at middleware (packages/oauth.js:107:7) 
at packages/oauth.js:96:5 

이 나의 현재 철 라우터 코드가

오류로 인해 실패 onBeforeAction 후크 중에도.

질문은 올바른 요청 디코딩을 설정하거나 utf-8로 인코딩 된 요청을 받아들이는 body-parser를 피하는 방법을 알아 냈습니다.

UPDATE 광고 호크 솔루션의 nginx를 사용하여 UTF8로 승리-1251을 변환하는 것이었다의 nginx에게

답변

0

광고 호크 솔루션을 사용하여 UTF8로 승리-1251을 변환하는 것이 었습니다.