微蓝网分享经验,让生活更简单!移动APP免费注册登录

windows2012 http超时设置方法,这一篇攻略就够了! 推荐

阅读:101次 时间:2024-12-31 12:21:51来源:用户
最佳经验
由作者撰写原创经验并推荐置顶

windows2012 http超时设置方法,以下内容是由微蓝经验网用户发布windows2012 http超时设置方法,这一篇攻略就够了,希望对于用户有一定帮助,为朋友进行解决疑惑,如若想了解更多相关内容,可以向底部移动了解更多与本教程文章相关解决经验方法!

工具与材料

电脑

方法/步骤
  1. 1

    java api的方式:

    String szUrl = “http://www,ee2ee,com/”;

    URL url = new URL(szUrl);

    HttpURLConnection urlCon = (HttpURLConnection)url,openConnection();

    //HttpURLConnection是基于HTTP协议的,其底层通过socket通信实现,如果不设置超时(timeout),在网络异常的情况下,可能会导致程序僵死而不继续往下执行,可以通过以下两个语句来设置相应的超时:

    System,setProperty(”sun,net,client,defaultConnectTimeout”, 超时毫秒数字符串);

    System,setProperty(”sun,net,client,defaultReadTimeout”, 超时毫秒数字符串);

    //sun,net,client,defaultConnectTimeout:连接主机的超时时间(单位:毫秒)

    //sun,net,client,defaultReadTimeout:从主机读取数据的超时时间(单位:毫秒)

    在1,5中,还可以使用HttpURLConnection的父类URLConnection的以下两个方法:

    setConnectTimeout:设置连接主机超时(单位:毫秒)

    setReadTimeout:设置从主机读取数据超时(单位:毫秒)

    HttpURLConnection urlCon = (HttpURLConnection)url,openConnection();

    urlCon,setConnectTimeout(30000);

    urlCon,setReadTimeout(30000);

    需要注意的是,笔者在JDK1,4,2环境下,发现在设置了 defaultReadTimeout的情况下,如果发生网络超时,HttpURLConnection会自动重新提交一次请求,出现一次请求调用,请求服务器两次的问题(Trouble),我认为这是JDK1,4,2的一个bug,在JDK1,5,0中,此问题已得到解决,不存在自动重发现象, out”, “30000″);

  2. 2

    2、httpClient:

    HttpClient工具类,每一个版本的都不一样:

    3,X是这样的

    HttpClient httpClient=new DefaultHttpClient();

    4,3是这样的

    CloseableHttpClient httpClient = HttpClients,createDefault();

    HttpClient有三种超时设置:

    1)3,X的超时设置方法

    HttpClient client = new HttpClient();

    client,setConnectionTimeout(30000);

    client,setTimeout(30000);

    HttpClient httpClient= new HttpClient();

    httpClient,getHttpConnectionManager(),getParams(),setConnectionTimeout(5000);

    2)4,X版本的超时设置(4,3后已过时)

    HttpClient httpClient=new DefaultHttpClient();

    httpClient,getParams(),setParameter(CoreConnectionPNames,CONNECTION_TIMEOUT,2000);//连接时间

    httpClient,getParams(),setParameter(CoreConnectionPNames,SO_TIMEOUT,2000);//数据传输时间

    3)4,3版本超时设置

    CloseableHttpClient httpClient = HttpClients,createDefault();

    HttpGet httpGet=new HttpGet("http://www,baidu,com");//HTTP Get请求(POST雷同)

    RequestConfig requestConfig = RequestConfig,custom(),setSocketTimeout(2000),setConnectTimeout(2000),build();//设置请求和传输超时时间

    httpGet,setConfig(requestConfig);

    httpClient,execute(httpGet);//执行请求

  3. 3

    3、使用curl时,有两个超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间,连接超时时间用 --connect-timeout 参数来指定,数据传输的最大允许时间用 -m 参数来指定,例如:

    curl --connect-timeout 10 -m 20 "http://XXXXXXX"

    连接超时的话,出错提示形如:

    curl: (28) connect() timed out,数据传输的最大允许时间超时的话,出错提示形如:

    curl: (28) Operation timed out after 2000 milliseconds with 0 bytes received

  4. 4

    ajax:

    1)在xmlHttpRequest老版本中,没有超时属性,所以如果使用javascript原生的老版本ajax请求,只能通过手工设置settimeout和cleartimeout这两个方法完成(这两个方法是window对象的方法)

    function createXMLHttpRequest() {

    var request = false;

    if (window,XMLHttpRequest) {

    request = new XMLHttpRequest();

    if (request,overrideMimeType) {

    request,overrideMimeType('text/xml');

    }

    } else if (window,ActiveXObject) {

    var versions = [ 'Microsoft,XMLHTTP', 'MSXML,XMLHTTP',

    'Microsoft,XMLHTTP', 'Msxml2,XMLHTTP,7,0',

    'Msxml2,XMLHTTP,6,0', 'Msxml2,XMLHTTP,5,0',

    'Msxml2,XMLHTTP,4,0', 'MSXML2,XMLHTTP,3,0', 'MSXML2,XMLHTTP' ];

    for ( var i = 0; i < versions,length; i++) {

    try {

    request = new ActiveXObject(versions[i]);

    if (request) {

    return request;

    }

    } catch (e) {

    }

    }

    }

    return request;

    }

    function ajax(xmlhttp, _method, _url, _param, _callback) {

    if (typeof xmlhttp == 'undefined')

    return;

    xmlhttp,onreadystatechange = function() {

    if (xmlhttp,readyState == 4 && xmlhttp,status == 200) {

    _callback(xmlhttp);

    }

    };

    xmlhttp,open(_method, _url, true);

    if (_method == "POST") {

    xmlhttp,setRequestHeader("Content-Type",

    "application/x-www-form-urlencoded");

    xmlhttp,setRequestHeader("Content-Length", _param,length);

    xmlhttp,send(_param);

    } else {

    xmlhttp,send(null);

    }

    }

    // 使用举例

    var xmlhttp = createXMLHttpRequest();

    var t1; // 用来作超时处理

    function adduserok(request) {

    // alert(request,responseText);

    if (t1)

    clearTimeout(t1);

    }

    function connecttoFail() {

    if (xmlhttp)

    xmlhttp,abort();

    // alert ('Time out');

    }

    if (xmlhttp) {

    ajax(xmlhttp, "POST", "http://10,1,2,187/adduser,cgi", "act=do&user=abc",

    adduserok);

    t1 = setTimeout(connecttoFail, 30000);

    } else {

    alert("Init xmlhttprequest fail");

    }

THE END
分享到:
免责声明:本文来自微蓝网用户分享,不代表微蓝网的立场。
作者信息

新手帮助关于我们招聘信息反馈投诉免责声明服务协议最新文章

微蓝网部分素材(图片、视频、音频等)来自于网络,不代表本站立场,以上素材或内容仅代表作者个人观点,因此产生相关问题作者本人负责,本站将不承担任何法律责任! 如有问题请进行侵权投诉

© 2025 VLPOS.com 版权所有 微蓝网 ICP备案号:黑ICP备20003952号-1  黑公网安备 23012602000120号