[node] request / http 가져올때 reponse body 깨짐 오류

1. 현상

 request / http 로 외부 api 통신 시 응답 값 body 등 text 깨짐 오류

{	
	body: '\u001f�\b\u0000\u0000\u0000\u0000\u0000...'
 }

 

2. 수정

본인은 request 를 사용하고 있어서 request option 값에 추가

const request = require('request')
const util = require('util')
const requestPromise = util.promisify(request)

options.headers = {
    'Accept-Encoding': 'gzip', // 추가
    'Content-Type': 'application/json;charset=UTF-8',
    'gzip': true,
    ...options.headers
  }
  options.gzip = true // 추가
  
  option.url = 'API주소' 

  return requestPromise(options)
     .then(res => ({
       statusCode: res.statusCode,
       statusMessage: res.statusMessage,
       headers: res.headers,
       body: res.body
     }))

 

3. 참고 사이트

1. https://github.com/getconversio/node-bigcommerce/issues/66
2. https://nodejs.org/api/zlib.html#zlib_compressing_http_requests_and_responses
3. https://www.npmjs.com/package/request#requestoptions-callback (gzip 부분)