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