nativescript处理REST非200响应

时间:2019-11-13 04:23:12

标签: javascript nativescript nativescript-vue

使用Nativescript-Vue进行http调用,我希望很好地处理404和500。这是我正在使用的代码,它将返回带有appllication / json消息的404:

const httpModule = require("tns-core-modules/http");

httpModule.request({
  url: productApi,
  method: "GET"
}).then((response) => {
  console.log("===> received response: " + JSON.stringify(response));
  let status = response.statusCode;
  console.log("===> received status: " + status);
  if (status === 200) {
    var obj = response.content.toJSON();
    console.log("===>  received [200] json: " +obj);
  }  else if (status === 404) {
    console.log("===>  returned [400] ... returning null " );
  }
}, (e) => {
  console.log("===> AWS Error occurred " + JSON.stringify(e));
});

服务器将返回带有应用程序/ json响应“找不到产品2420846325”的404。我在Postman和浏览器中对此进行了验证。

但是,我在控制台中看不到任何消息...我看到的最接近的是:

Task <88A2709F-3CAD-4671-9D9F-67A95A177AC4>.<2> sent request, body N 0
Task <88A2709F-3CAD-4671-9D9F-67A95A177AC4>.<2> received response, status 404 content K
Task <88A2709F-3CAD-4671-9D9F-67A95A177AC4>.<2> done using Connection 2
Task <88A2709F-3CAD-4671-9D9F-67A95A177AC4>.<2> response ended
Task <88A2709F-3CAD-4671-9D9F-67A95A177AC4>.<2> summary for task success {transaction_duration_ms=2125, response_status=404, connection=2, protocol="h2", domain_lookup_duration_ms=3, connect_duration_ms=96, secure_connection_duration_ms=74, request_start_ms=106, request_duration_ms=0, response_start_ms=2123, response_duration_ms=2, request_bytes=195, response_bytes=370, cache_hit=1}

我应该如何处理这些非200的回复,以便可以向用户发送消息?

1 个答案:

答案 0 :(得分:0)

新手错误,因此也许可以帮助其他人。

问题是这一行:

console.log("===> received response: " + JSON.stringify(response));

'响应'是一个httpResponse对象,为了使其正常工作,我将其更改为:

console.log("===> received response: " + response.content.toString());

因为这引发了错误,所以从未收到日志消息。