Javascript 获取响应截止

标签 javascript android json react-native fetch

我开始学习 react-native 并在 Android 上使用 fetch 时遇到了一些问题。

try {
    let response = await fetch(REQUEST_URL, {
        method: "POST",
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({
            ***parameters***
        })
    });
    let responseJson = await response;
    if(responseJson){
        // console.log(responseJson);
        console.log(responseJson.text());
        // console.log(responseJson.json());
    }
} catch(error) {
    console.error(error);
}

请求已正确发送,但未完整显示答案:

(**loads more data before**){"ID":"779","DESCRICAO":"ZXCVB","CLIENTENUMERO":"10133","CLIENTENOME":"Lda 1","TREGISTO":"2015\\/11\\/24 09:34:15","TTERMO":"","SITUACAO":"C","TIPO":"P","NOTIFICACOES":"email","NOTIFI_TAREFA":"","ESFORCOS_TOT":"4","TEMPOGASTO_TOT":"0:01:44","TEMPOGASTO_PES":"0:01:44","PROJECTO":"New Products","USERNAME":"AT","UREGISTO":"S","EMCURSO":"0","TULTIMO":"2015\\/12\\/18 20:37:56","EQUIPA":"","NIVEL":"AVISAX"},{"ID":"783","DESCRICAO":"123","CLIENTENUMERO":"10133","CLIENTENOME":"Lda 1","TREGISTO":"2015\\/11\\/24 09:43:26","TTERMO":"","SITUACAO":"C","TIPO":"P","NOTIFICAC

如您所见,JSON 对象并不完整。在浏览器中使用其他方法发送相同的请求会正确返回 JSON。

我想知道这是否是 fetch 或 Android 的实际问题。

我试过在 fetch 中将 size 和 timeout 参数设置为 0,但它什么也没做。

编辑:也尝试使用同步获取而不是异步,效果相同:

fetch(REQUEST_URL, {
    method: "POST",
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        ***params***
    })
})
.then((response) => response.text())
.then((responseText) => {
    console.log(responseText);
})
.catch((error) => {
    console.warn(error);
}

还试过:

console.log(responseJson);

console.log(responseJson.json());

编辑以进一步说明:

当使用 response.json() 时,响应显示为 json(正如预期的那样),但它仍然不完整。

最佳答案

编辑::问题在于 console.log 限制了它在控制台中显示的字符数。

快速提问:

用postman打端点能不能完整获取到json对象?很可能是您的服务器/服务切断了消息。

最后,(我看到你在上面提到了这一点)但是当我知道这是符号类型时,我总是在响应 obj 中使用“json”方法——它应该返回一个 promise 。

fetch(REQUEST_URL, {
    method: "POST",
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        ***params***
    })
})
//get the response and execute .json
.then((r) => r.json())
//then listen for the json promise
.then((j) => {
    console.log(j);
})
.catch((error) => {
    console.warn(error);
}

让我知道发生了什么,如果您得到 postman (或 fiddler compose)的完整回复。

关于Javascript 获取响应截止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36893748/

相关文章:

javascript - 如何找出用户在文本输入中按下了 "enter"?

javascript - 打开 iframe src 到新页面

android - 是否可以防止 iOS 和 Android 上的 GPS 作弊?

javascript - 如何使用 sailsjs-nodejs 连接/合并两个 json 对象

javascript - 从所有表行中删除特定类

javascript - Jquery根据另一个字段的输入和目标字段的输入验证所需

java.lang.IllegalStateException : Default FirebaseApp is not initialized in this process

Android-如何改变ActionBarDrawerToggle图标的大小?

使用 ajax 时 JavaScript 循环行为异常

python - Python 中的嵌套字典 JSON 到嵌套字典