How to setup fetch for React Native Android using gzip?

Viewed 1978

My React Native app had been working fine on both iOS and Android but recently it gives Network request failed error on Android when the response is long.

I found out if I set the request's header to 'Accept-Encoding': 'gzip',, I was able to log response, but it only contains header and such:

{  
   type:'default',
   status:200,
   ok:true,
   statusText:undefined,
   headers:{  
      map:{  
         date:'Mon, 27 Aug 2018 18:39:23 GMT',
         'content-type':'application/json',
         'content-length':'215',
         'content-encoding':'gzip',
         'cache-control':'no-cache'
      }
   },
   url:'http://test.essaybot.com/essay/list',
   _bodyInit:'',
   _bodyText:''
}

This is how I setup the fetch request:

const URLENCODED_HEADER = {
  'Accept': 'application/json',
  'Content-Type': 'application/x-www-form-urlencoded',
  'Accept-Encoding': 'gzip',
  'Content-Encoding': 'identity'
}

async function getEssayList() {
  try {
    let response = await fetch(SERVER_URL+'/essay/list', {
      headers: URLENCODED_HEADER,
      credentials: 'include',
    });
    let responseJson = await response;
    console.log("[getEssayList]=======>", responseJson)
  } catch(error) {
    console.error(error);
    throw error;
  }
}
0 Answers
Related