Nativescript - http.getFile()不会处理错误情况

时间:2017-02-22 20:56:27

标签: nativescript

我使用http.getFile()下载文件。这是代码。

httpModule.getFile( url, destPath ).then( function( result ) {}, function (error) {} );

如果我指定了无效的URL(即产生了http 404) - getFile()返回成功结果,该文件包含404 html消息。我原以为404(文件未找到)会导致拒绝。

1 个答案:

答案 0 :(得分:1)

HTTP状态 404 表示您已发出成功请求,并且服务器已回复了不存在的内容。您可能希望实现逻辑来解决不同的服务器状态,例如40x和50x,这是常见的情况并且不是由错误引起的。在HTTP请求中但由于服务器端的错误(缺少内容,丢失的服务器等)。

在拒绝回退中,您应该只处理不成功的请求,从而导致与代码执行相关的错误,并且不应该根据成功返回的HTTP状态代码处理逻辑。当您发现错误时,由于请求失败,不会为您提供任何状态代码。

要根据状态代码处理逻辑,您可以使用以下内容:

http.request({ url: "https://httpbin.org/get", method: "GET" }).then(response => {
        // Argument (response) is HttpResponse!
        var statusCode = response.statusCode;
        if (statusCode >== 400) {
            // do something to handle all statuses greater then 400
        }
    }).catch(err => {
    // handle execution errors here
})