React native React Native fetch()未在控制台日志中输出正文

React native React Native fetch()未在控制台日志中输出正文,react-native,expo,React Native,Expo,我正在使用fetch()从API获取一些数据。在Postman中测试时,数据以JSON的形式成功返回。然而,当在android上使用react原生应用程序进行测试时,我得到一个文本/html响应,不知道为什么。如何从console.log()中的文本查看响应主体以进行调试?当我执行console.log(resp)时,我看不到主体 const response = await fetch('https://web.com/api/usersignup', {

我正在使用fetch()从API获取一些数据。在Postman中测试时,数据以JSON的形式成功返回。然而,当在android上使用react原生应用程序进行测试时,我得到一个文本/html响应,不知道为什么。如何从console.log()中的文本查看响应主体以进行调试?当我执行console.log(resp)时,我看不到主体

       const response = await fetch('https://web.com/api/usersignup', {
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            }, 
            body: JSON.stringify(formData)
        })
        .then(resp => {
            this.setState({spinner: false});
            console.log(resp);// output in console is pasted under this code
             return resp.text();

            //return resp.json();
        })
        .then((responseJson) => {
         console.log(responseJson);
        })
        .catch(error => {
            this.setState({spinner: false});
            Alert.alert('Error', error.message);
            throw error;
        });
使用console.log()时在Metro Builder中获得的输出。不包括车身。

Response {
  "_bodyBlob": Blob {
    "_data": Object {
      "blobId": "63acc7d8-bd8a-4dd7-b33b-f0e4f202f97e",
      "offset": 0,
      "size": 0,
    },
  },
  "_bodyInit": Blob {
    "_data": Object {
      "blobId": "63acc7d8-bd8a-4dd7-b33b-f0e4f202f97e",
      "offset": 0,
      "size": 0,
    },
  },
  "headers": Headers {
    "map": Object {
      "cache-control": "public, max-age=0",
      "connection": "keep-alive",
      "content-length": "0",
      "content-type": "text/html; charset=UTF-8",
      "date": "Sat, 09 Nov 2019 21:06:05 GMT",
      "server": "Apache",
      "x-ratelimit-limit": "60",
      "x-ratelimit-remaining": "59",
    },
  },
  "ok": true,
  "status": 200,
  "statusText": undefined,
  "type": "default",
  "url": "https://web.com/api/usersignup",
}

你不能打印正文,直到“先打印后打印”的承诺完成

我用你的代码做了一个例子:


只需更换端点并提供正确的标题。

您尝试过axios吗?它对http请求非常有用,并提供了更好的响应对象。同样的问题,如何在控制台中实际输出正文?使用POST发送到服务器的数据存在一些问题,我需要从API/服务器获得完整的调试响应,我该如何做?对于axios,这是响应模式:{data:{},状态:200,状态文本:'OK',头:{},配置:{},请求:{}如果您没有获得数据密钥,这是由您的API引起的,也许你应该用像Postman这样的API测试工具来调试它。
const response = await fetch('https://jsonplaceholder.typicode.com/todos/1', {
    method: 'GET',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    }, 
    //body: JSON.stringify(formData)
})
.then(resp => {
    console.log('Printing out not json');
    console.log(resp);
    return resp.json();
})
.then((responseJson) => {
 console.log('Printing out json'); 
 console.log(responseJson);
})
.catch(error => {
    this.setState({spinner: false});
    Alert.alert('Error', error.message);
    throw error;
});