精华内容
下载资源
问答
  • axios请求超时自动重新请求

    千次阅读 2019-03-09 16:19:45
    有时候因项目需求,要在接口请求超时或者获取数据失败时,重新请求1次,或者更多次。具体的配置步骤和方法如下: 因为是要在请求超时或者获取数据失败时,进行重新请求设置,那么我们肯定是要在请求返回拦截器里面...

    有时候因项目需求,要在接口请求超时或者获取数据失败时,重新请求1次,或者更多次。具体的配置步骤和方法如下:

    因为是要在请求超时或者获取数据失败时,进行重新请求设置,那么我们肯定是要在请求返回拦截器里面设置,

    import axios from "axios";
    
    const Axios = axios.create({ 
    	// 下面两个属性,用来设置,请求失败或者超时,自动重新请求的次数和间隙时间
    	retry: 2, // 请求次数
    	retryInterval: 1000 // 求期间隙
        ......
    });
    //请求前拦截
    Axios.interceptors.request.use(config => {
    		return config
    	},
    	function(error) {
    		return Promise.reject(error)
    	}
    );
    //请求后返回数据拦截
    Axios.interceptors.response.use(res => {
           return res
        },
        function axiosRetryInterceptor(res) {
            var config = res.config;
            //如果配置不存在或重试属性未设置,抛出promise错误
            if (!config || !config.retry) return Promise.reject(res);
            //设置一个变量记录重新请求的次数
            config.retryCount = config.retryCount || 0;
            // 检查重新请求的次数是否超过我们设定的请求次数
            if (config.retryCount >= config.retry) {
                return Promise.reject(res);
            }
            //重新请求的次数自增
            config.retryCount += 1;
            // 创建新的Promise来处理重新请求的间隙
            var back = new Promise(function(resolve) {
                console.log("接口"+config.url+"请求超时,重新请求")
                setTimeout(function() {
                    resolve();
                }, config.retryInterval|| 1);
            });
            //返回axios的实体,重试请求
            return back.then(function() {
                return Axios(config);
            });
        }
    );
    export default Axios

     

    展开全文
  • axios请求超时后重新请求

    千次阅读 2018-08-16 10:55:12
    在vue或是react中进行网络请求axios用的都比较多,有时因为网络不稳定问题导致请求超时,请求超时后常用解决方案都会重新尝试发送请求,尝试指定次数后不管成功与否皆结束本次请求 下面是具体解决方案,主要使用了...

    在vue或是react中进行网络请求axios用的都比较多,有时会因为网络不稳定问题导致请求超时,请求超时后常用解决方案都会重新尝试发送请求,尝试指定次数后不管成功与否皆结束本次请求

    下面是具体解决方案,主要使用了axios提供的拦截器

    //在main.js设置全局的请求次数,请求的间隙
    axios.defaults.retry = 4;
    axios.defaults.retryDelay = 1000;
    
    axios.interceptors.response.use(undefined, function axiosRetryInterceptor(err) {
        var config = err.config;
        // If config does not exist or the retry option is not set, reject
        if(!config || !config.retry) return Promise.reject(err);
    
        // Set the variable for keeping track of the retry count
        config.__retryCount = config.__retryCount || 0;
    
        // Check if we've maxed out the total number of retries
        if(config.__retryCount >= config.retry) {
            // Reject with the error
            return Promise.reject(err);
        }
    
        // Increase the retry count
        config.__retryCount += 1;
    
        // Create new promise to handle exponential backoff
        var backoff = new Promise(function(resolve) {
            setTimeout(function() {
                resolve();
            }, config.retryDelay || 1);
        });
    
        // Return the promise in which recalls axios to retry the request
        return backoff.then(function() {
            return axios(config);
        });
    });
    
    展开全文
  • 小程序请求超时

    2020-05-07 10:36:36
    网上搜的全是只要fail,就toast请求超时,这种完全不符合我们的要求。 只有确实是超时了,才能toast请求超时。 排名前5的文章都是这样,看不下去了,无奈只能自己研究。 app.json可以设置超时时间,默认都是60秒 ...

    网上搜的全是只要fail,就toast请求超时,这种完全不符合我们的要求。

    只有确实是超时了,才能toast请求超时。

    排名前5的文章都是这样,看不下去了,无奈只能自己研究。

    app.json可以设置超时时间,默认为60秒

    "networkTimeout": {
        "request": 60000,
        "downloadFile": 60000,
        "uploadFile":60000,
        "connectSocket":60000
      }

    wx.request时超时会进入fail方法

    fail: function (err) {
          if(err&&err.errMsg&&err.errMsg.indexOf('timeout')!=-1){
            wx.showToast({
            title: '请求超时',
            icon: 'none'
          })
          }   
        }

     

    展开全文
  • 所以就看了看源码,修改最新方法。在这里做个记录吧。以get请求例吧:这是之前的没有设置请求超时时间:public static HttpResponse doGet(String host, String path, Map<String, String...

    今天在给http请求设置超时时间时,发现之前的方法已经过时了。所以就看了看源码,修改为最新方法。

    在这里做个记录吧。

    以get请求为例吧:

    这是之前的没有设置请求超时时间:

    public static HttpResponse doGet(String host, String path,
                                         Map<String, String> headers,
                                         Map<String, String> querys)
                throws Exception {
            HttpClient httpClient = wrapClient(host,path);
            HttpGet request = new HttpGet(buildUrl(host, path, querys));
            for (Map.Entry<String, String> e : headers.entrySet()) {
                request.addHeader(e.getKey(), e.getValue());
            }
            return httpClient.execute(request);
        }

    这个是设置之后的:

    public static HttpResponse doGet(String host, String path,
                                         Map<String, String> headers,
                                         Map<String, String> querys)
                throws Exception {
            HttpClient httpClient = wrapClient(host,path);
            HttpGet request = new HttpGet(buildUrl(host, path, querys));
            for (Map.Entry<String, String> e : headers.entrySet()) {
                request.addHeader(e.getKey(), e.getValue());
            }
            request.setConfig(setTimeOutConfig(request.getConfig()));
            return httpClient.execute(request);
        }
    /**
         * 设置 连接超时、 请求超时 、 读取超时  毫秒
         * @param requestConfig
         * @return
         */
        private static RequestConfig setTimeOutConfig(RequestConfig requestConfig){
            return RequestConfig.copy(requestConfig)
                    .setConnectionRequestTimeout(60000)
                    .setConnectTimeout(60000)
                    .setSocketTimeout(10000)
                    .build();
        }

    我呢把这块抽了一个方法,只需要在执行请求之前将request的config重新设置就可以了。

    下面我们简单看看源码:

    这是RequestConfig.java


    我们可以看到有很多的相关配置参数。

    但是我们可以看到这些属性都是final类型的,也就是说我们并不能使用set方式为其赋值。同时,也没有一个public的构造方法。那么,我们怎么修改呢?

    当然,它也为我们提供了相应的修改方式。下面我们就来看看:


    我们看到,它里面有一个静态类Builder,在Builder里面也有这些属性,同时,我们可以发现,Builder为我们提供了set方法。

    这就意味着我们可以修改这些属性的值了。那么,该如何来改呢?

    在Builder的最后有一个build()方法,我们来看看


    build方法为我们返回了一个RequestConfig对象。而且这个方法里为RequestConfig赋值为Builder的对应属性值。

    所以,我们就可以先获得一个Builder对象,为其属性赋值,然后调用build方法得到我们想要的RequestConfig。

    那么,Builder对象又该如何获取呢?


    我们可以看到,RequestConfig为我们提供了两个静态方法获取Builder。

    我们可以通过custom获取一个新的Builder对象,也可以通过copy方法获取一个赋有当前配置的Builder对象。

    如此,我们就可以修改我们想要修改的RequestConfig配置了。


    转载请务必保留此出处(原作者):https://blog.csdn.net/zhuzhezhuzhe1


    版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。

    https://blog.csdn.net/zhuzhezhuzhe1


    展开全文
  • 之前android客户端进行注册时候出现重复记录的现象,今天后台debug调试的时候测出Android端在请求后台的时候如果请求超时自动再次发送一次请求,这样就往数据库里插入重复条记录了。本以为是Android端代码...
  • HTTP请求超时

    千次阅读 2018-04-12 13:44:00
    服务器请求超时修改方式 web.config <system.web> <!--web中 设置请求超时时间--> <httpRuntime maxRequestLength="102400" executionTimeout="300" targetFramework="4.5.1" /> </...
  • tracert后一半请求超时

    2020-03-31 21:19:12
    13 * * * 请求超时。 14 133 ms 120 ms * 123.255.90.246 15 * * * 请求超时。 16 * * * 请求超时。 17 * * * 请求超时。 18 * * * 请求超时。 19 * * * 请求超时。 20 * * * 请求超时。 21 * * * ...
  • Retrofit设置请求超时

    万次阅读 2016-08-22 14:56:22
    Retrofit设置请求超时 最近笔者在用Retrofit的时候有了设置请求超时的需求,但是看了一下Retrofit的API,并没有发现有设置请求超时的方法,于是上网查了下相关资料,这里就跟大家分享一下. 因为Retrofit是依赖于OkHttp...
  • Android网络请求超时处理

    千次阅读 2018-04-17 13:48:18
    转自:http://www.cnblogs.com/tony-yang-flutter/p/androidtimeout.html以用户登录例介绍用户访问网络时的请求超时处理的两种方法:一. 使用android提供的工具类AsyncTask类,此类提供了一个AsyncTask.execute()....
  • android的HttpClient添加请求超时时间

    千次阅读 2013-09-09 22:28:43
    android的HttpClient添加请求超时时间 摘要: 在以前做一个android的移动项目的时候,想httpClient对象添加请求超时和读取超时时间,发现httpClient的对象实现的defaultHttpClient对象中就没有设置...
  • springboot设置请求超时

    千次阅读 2020-06-18 16:15:31
    超时设置 默认的超时设置 默认是没有超时限制的,见SimpleClientHttpRequestFactory 类的 private int connectTimeout = -1; // -1 表示不超时 private int readTimeout = -1; // -1 表示不超时 1.3版本之前 @...
  • Android WebView有请求超时时间吗?请求的超时时间是多少?可以自定义设置吗?(由于加载较慢,想设置请求时间长一些)
  • 解决axios请求超时

    千次阅读 2020-01-14 10:42:03
    在使用过程中有许多问题存在,比如由于网络不稳定导致请求超时/失败,通常有两种解决方案,一种是提示用户重新提交请求,另一种是进行相关提示并自动重新发送请求。第二种方式用户体验明显高于第一种方式。本文就...
  • 请求超时的fetch插件

    千次阅读 2018-05-02 16:25:01
    项目中使用的fetch插件没有设置请求超时的属性,在部分场景中需要使用到请求超时提醒,考虑在fetch的基础上编写一个带请求超时的插件 本身fetch是根据promise开发的,考虑使用promise中的race配合settimeout来实现...
  • ping github 请求超时解决方案

    万次阅读 多人点赞 2019-08-04 02:31:26
    前言 蛋疼的产品需要定制编辑器,然后我肯定是太懒 去github找了...然后懵逼了,全是请求超时(哭笑脸) 正文 直接改本机host。以windows 例子。 现在在 http://github.global.ssl.fastly.net.ipaddress.com...
  • Vue项目请求超时处理

    千次阅读 2019-10-28 14:48:25
    现在网页项目大多采用前后端分离模式,这种模式优点有很多,但是也带来不少问题,比如:请求后端接口时受网络因素影响,导致请求超时;这就需要我们在请求方法中设置拦截,对请求超时做处理; 下面就是我在项目...
  • 请求超时问题排查

    千次阅读 2020-05-28 13:12:52
    请求超时问题排查 微服务调用一个阻塞连接,需要2到3分钟,但是每次到60秒时,后台出现504 getway timeout问题,初步怀疑是ribbon的超时导致的,检查发现不是,排除;再次怀疑nginx默认的60秒超时导致,发现配置了...
  • Tomcat请求超时

    千次阅读 2018-05-11 12:59:51
    如果服务器需要更多的时间,请尝试在服务器编辑器中增加超时时间。修改eclipse的工作空间D:\Work\codes\hands\.metadata\.plugins\org.eclipse.wst.server.core下的servers.xml文件:&lt;?xml version="1.0...
  • HttpClient的请求超时和响应超时

    万次阅读 2016-02-16 21:03:31
    HttpClient是apache的开源实现,Android SDK中集成了HttpClient,项目开发中目前使用HttpClient来请求网络数据。在开发中碰到下面两个参数。...这两个时间分别叫做请求超时和响应超时,之前对它们的...
  • NSURLSessionTask 上传图片 请求超时

    千次阅读 2018-09-07 16:58:32
    如果上传图片的超时10秒, 同时并发上传很多张图片,容易导致部分请求超时,比如同时并发上传50张图片,差不多有20张是返回请求超时的 。 NSMutableURLRequest *request = [[NSMutableURLRequest alloc...
  • android retrofit设置网络请求超时时间

    万次阅读 2018-02-01 17:41:15
    今天开发的时候遇到一个网络请求超时的问题,后台处理是成功的,但是移动端返回的总是提示请求超时,在设置了retrofit请求超时的时间延长以后,就可以请求成功了,下面是配置的方法: private static final ...
  • afnetworking 是在哪调用 alertview 的show方法的? 我在它的代码里没找到,而且为什么会调用两次?
  • flutter 请求超时回调

    千次阅读 2019-11-19 20:57:55
    注意flutter的rxdart请求超时回调不在onError里面需要在请求地方添加timeout,超时回调在此处,如下图: RequestMap.requestNotPayOrder(context) .timeout(Duration(seconds: Utils.getConnectTime()), ...
  • 前端Ajax请求超时处理

    千次阅读 2019-07-09 11:24:48
    第一步:将网络请求事件赋值给变量ajaxTimeOut 第二步:通过设置timeout属性值,来定义超时时间 第三步:通过complete中的status是否等于timeout来判断是否超时,并设置超时提示处理 2、具体代码 let ajaxTimeOut ...
  • uni-app请求超时问题

    千次阅读 2020-10-06 16:30:05
    最后发现在manifest.json里可以设置请求时间,如果网络不稳定超过请求时间还没有获得回应,就出现请求超时,具体设置如图 这个单位是毫秒,如图设置的是60秒请求时间,就是说如果超过60秒还请求接收不到消息就...
  • AFN请求超时时间

    千次阅读 2016-10-18 09:22:44
    只需要在实例化AFHTTPSessionManager后设置以下属性即可// 设置超时时间 [_manager.requestSerializer willChangeValueForKey:@"timeoutInterval"]; _manager.requestSerializer.timeoutInterval = 10.0f; [_...
  • Java处理HTTP请求超时问题

    千次阅读 2019-12-01 17:30:58
    在发送POST或GET请求时,返回超时异常处理办法: 捕获 SocketTimeoutException | ConnectTimeoutException | ConnectionPoolTimeout 异常 以上三种异常说明: SocketTimeoutException:是Java包下抛出的异常,这...
  • tracert请求超时原因

    万次阅读 2019-09-20 00:06:54
    1、那一跳禁PING2、那一跳不对TTL超时做响应处理,直接丢弃3、MPLS ***网络
  • ReactNative fetch请求封装实现请求超时

    千次阅读 2018-03-30 16:50:11
    以前觉得写这些东西没啥用,现在觉得这是一种很...利用Promise.race()实现请求超时 //封装的请求 带超时 const _timeout = 30*1000 //默认30秒 //GET请求 function GET(url, version, timeout = _timeout) { var d...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 462,641
精华内容 185,056
关键字:

为什么会请求超时