响应失败后如何停止http响应

时间:2018-08-30 05:37:16

标签: android angularjs cordova ionic-framework httprequest

我正在使用企鹅PHP / MYSQL服务器应用程序和My ionic 1 android应用程序。应用程序每30秒向服务器请求一次呼叫,它返回一些数据,当服务器打开时,它运行良好。当服务器关闭时,发出请求并获得响应作为错误,也可以,但是当我在服务器上打开时,响应将批量返回。

例如-如果在服务器关闭到开启之间有10个呼叫(请求),则服务器开启后将有10个响应。

有什么办法可以停止之前发出的请求响应。

请帮助我,它在应用程序中造成了很多问题。

2 个答案:

答案 0 :(得分:1)

您需要在特定时间间隔后使请求超时。

下面是一个例子:

$http({
          method : "GET",
          url : "https://www.example.com/post",
          timeout: 1*35 * 1000   //35 secs just for safety, as it takes 30 secs for next request
      })
        .then(
            function mySuccess(response) {
               $scope.myWelcome = response.data;
            },
            function myError(response)   {
               $scope.myWelcome = response.statusText;
          });

如果服务器已关闭,则请求在经过给定间隔后将超时,并且将相应地显示响应错误。

答案 1 :(得分:1)

如果要在离子框架中解决方案:

this.http.post('http://my.api', {your JSON data})
    .timeout(10000)
    .subscribe((Return_data) => {Do success Stuff}, (err) => {Do Fail Stuff})

如果您的请求什么都没有收到,它将在10秒内停止。

您可能需要import 'rxjs/add/operator/retry';,具体取决于您的框架版本。