0 0

HttClient校验地址是否有效,返回响应的状态值(如200,404等)10

public void isValidUrl(String url) {
  HttpClient httpClient = null;
  try {
   httpClient = new DefaultHttpClient();
   HttpGet httpGet = new HttpGet(url);
   httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 6000); // 设置请求超时时间
   httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 6000);//

   HttpResponse httpResponse = httpClient.execute(httpGet);
   int stateCode = httpResponse.getStatusLine().getStatusCode();
   System.out.println("stateCode: " + httpResponse.getStatusLine());
   if (stateCode != 200) {
    System.out.println(url + ":" + stateCode);
   }
  }
  catch (Exception e) {
   System.out.println("异常的:" + url);
  }
 }

以上代码是我写的一个方法,但是遇到这样了一个问题,就是如果我输入的一个地址,它的域名如果不存在(http://www.baiasdfduaae.com),它返回的状态指是200,firebug跟踪,首先状态值是304,然后跳到一个另一个页面的地址,页面的内容指的是,该域名解析错误。这显然,不符合我的要求。代码上怎样修改,把这样类似的地址直接获得它的实际值304,而不是200呢?请大侠们,赐教一下。

 

2013年4月23日 09:58

3个答案 按时间排序 按投票排序

0 0

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost =new HttpPost(HTTPURL);
        httpClient.getParams().setParameter(AllClientPNames.PROTOCOL_VERSION,HttpVersion.HTTP_1_1);
        httpClient.getParams().setParameter(AllClientPNames.USE_EXPECT_CONTINUE, Boolean.TRUE);
        httpClient.getParams().setParameter(AllClientPNames.HTTP_CONTENT_CHARSET,"UTF_8");
        httpClient.getParams().setParameter(AllClientPNames.CONN_MANAGER_TIMEOUT, 10000l);
        httpClient.getParams().setParameter(AllClientPNames.CONNECTION_TIMEOUT, 2000);
        httpClient.getParams().setParameter(AllClientPNames.SO_TIMEOUT, 10000);

可以通过上述去判断,AllClientPNames.CONNECTION_TIMEOUT这个是判断连接主机的超时,如果域名不存在的话,这个直接就会给你报个HostException,貌似这个异常我写的不全,但是这两个字母就有的,


AllClientPNames.SO_TIMEOUT这个是请求接口超时,这个是前提那个域名,主机存在的情况下,才执行这个,如果调用这个方法在你指定的时间里面超时了,也会给你报个异常的,我这里面的参数是httpClient最新架包里面的,老版本可能没有。

你自己去试试

2013年4月23日 12:40
0 0

禁用重定向

HttpClient httpclient = new DefaultHttpClient(); 
HttpParams params = httpclient.getParams(); 
params.setParameter(ClientPNames.HANDLE_REDIRECTS, false); 

2013年4月23日 11:15
0 0

根据你的要求需要判断url是否存在可以根据我写的看下
    public static int isValidUrl(String url){
HttpClient client = new HttpClient();
int statusCode = 0;
//设置httpClient的连接超时时间
    client.getHttpConnectionManager().getParams() 
         .setConnectionTimeout(3000); 
    //设置httpClient的最长请求响应时间
    client.getHttpConnectionManager().getParams().setSoTimeout(5000);

GetMethod getMethod   = new GetMethod(url);
    try
    {
statusCode = client.executeMethod(getMethod);
    }
    catch (Exception e)
    {
System.out.println("域名不存在");
statusCode = -1;
    }
    finally
    {
            //释放连接
            if(getMethod != null)
            {
            getMethod.releaseConnection();
            }
    }

           return statusCode;
}

2013年4月23日 10:42

相关推荐

    S7-200的CRC校验程序

    此外,它可能还包含了CRC校验算法的具体实现细节,如所使用的CRC多项式和初始值等。 状态表.jpg可能是一张展示程序运行状态的图表,例如,显示了不同输入数据对应的CRC校验码,或者展示了程序在不同条件下的运行...

    200 smart PLC的CRC校验测试程序

    直接计算法,也称为硬编码计算,是通过一系列位操作(如异或、移位等)来计算CRC值。这种方法直观但计算量大,尤其是在处理大量数据时,可能会消耗较多的CPU资源。在200 smart PLC中,如果选择直接计算法,程序需要...

    java解析excel并做数据有效性校验

    数据有效性校验是指根据预设规则检查数据是否符合要求,例如,手机号码必须是11位数字,邮箱地址应符合特定格式等。在Excel中,可以通过设置数据验证规则实现。在Java中,我们可以使用Apache POI的`...

    用S7-200smart编的CRC校验子程序

    在工业控制领域,如S7-200SMART系列PLC(可编程逻辑控制器)编程中,CRC校验常用于确保数据传输的准确性。下面将详细介绍CRC校验的基本原理、在S7-200SMART中的应用以及如何编写相关子程序。 CRC校验是通过计算数据...

    200smart中如何计算CRC校验值;

    200smart中如何计算CRC校验值; 模块; 仅供参考;

    web 地址校验

    在Web开发中,确保用户输入的网页地址(URL)正确且有效是非常重要的。"Web地址校验"就是针对这一需求而进行的一项关键技术。它涉及到URL的格式验证、安全性检查以及可访问性确认等多个方面,旨在保护系统免受恶意...

    UDP校验和算法

    UDP校验和算法是网络通信中确保数据包完整性和正确性的一种重要机制,尤其是在无连接的UDP(User Datagram Protocol)协议中,由于其不提供可靠传输的保障,校验和的作用就显得尤为关键。本文将深入解析UDP校验和...

    java实现免费代理IP的获取方式 并实时校验代理IP是否有效

    Java 实现免费代理IP的获取方式 并动态实时校验是否有效,java文件项目内含有Jsoup的Jar包(Jsoup是加工过的,含请求),有2个主入口程序: 其一:用于请求代理IP,并立即校验是否是一个有效的代理IP,如果有效,...

    常用数据校验源代码(CRC8 CRC16 和校验 异或校验)

    接收方同样计算接收到的数据的累加和并与校验值进行对比,从而判断数据是否正确。 ##### 4.2 C++实现 ```cpp uchar SumValid(const uchar* puchData, int len) { uchar crc8 = 0; while (len--) { crc8 += (*...

    关于java中对象属性值的校验的思考

    同时,单元测试也是校验的一种有效手段,通过编写测试用例来验证对象状态的合法性。 对于源码分析,了解校验框架的内部实现可以帮助我们更好地利用它们。例如,Hibernate Validator的源码展示了如何解析注解、构建...

    CRC校验工具,可得到校验值的工具

    它的主要目的是确保数据在传输或存储过程中没有发生错误,通过计算一段数据的校验码并与接收端计算的校验码进行比较,来判断数据是否在传输中出现错误。 CRC校验的工作原理基于多项式除法,具体步骤如下: 1. **...

    文件Hash值校验工具

    文件Hash值校验工具是一款轻量级的应用程序,专门用于验证文件的完整性和一致性。它在IT领域中扮演着至关重要的角色,特别是在下载、传输或存储文件时,确保文件未被篡改或损坏。这款工具的大小不超过30KB,体现了其...

    CheckTool:CRC校验、累加和校验、异或和校验专业校验工具V1.0

    为确保数据在传输、存储过程中的无误,我们经常使用各种校验机制,如CRC(Cyclic Redundancy Check)、累加和校验以及异或和校验。CheckTool V1.0是一款专门针对这些校验方法的专业工具,它能够帮助用户快速、准确地...

    页面校验函数。该函数可以很方便的校验页面上不许为空的项,校验页面输入框Text的合法值,如数字和日期的校验等

    该函数可以很方便的校验页面上不许为空的项,校验页面输入框Text的合法值,如数字和日期的校验等。如果不许某项为空可以这样设置:申请单位:申请单位;nullStr:false;">。使用该函数只能对页面text输入框进行验证,...

    POI导入Excel并返回校验后的错误文件(原样)下载以及校验错误信息,同时加进度条

    POI导入Excel并返回校验后的错误文件(原样数据文件,并添加批注,注:由于批注只能加1000条,会在Excel后面添加一栏错误信息)下载以及页面展示校验错误信息,同时添加导入进度条,提供页面js和css代码,后端...

    MD5校验值 MD5校验值.zip

    在文件校验中,MD5校验值常用来确认文件在传输或复制过程中是否保持完整无损。例如,当您下载一个大文件后,可以计算它的MD5值,并与发布者提供的正确值进行比较。如果两者匹配,则表明文件在传输过程中没有被篡改或...

    我的导入校验项目excel导入校验

    6. **自定义业务规则校验**:根据业务需求,可能需要实施特定的校验规则,如检查订单状态、库存量等。 其次,导入数据的过程通常包括以下步骤: 1. **读取Excel文件**:使用编程语言(如Python的pandas库,Java的...

    MD值校验工具

    MD5值校验工具是一种用于验证文件完整性的实用程序,主要应用于IT领域,尤其是软件下载、数据备份和安全检查等方面。MD5全称为Message-Digest Algorithm 5,是由美国计算机科学家Rivest在1991年设计的一种密码散列...

    angular2+的响应式表达校验.rar

    这使得开发者能够立即反馈用户的输入是否有效。 8. **模板驱动与响应式表单的区别**: 响应式表单更适用于复杂的业务逻辑和服务器端交互,它提供了更高级别的抽象,允许在组件级别控制表单,而模板驱动表单更适合...

    UART发送接收奇偶校验.zip_VWYC_uart_奇偶 校验_奇偶校验_校验状态

    状态机有多个状态,如IDLE(空闲)、START(起始位检测)、DATA(数据位接收)、PARITY(校验位处理)和STOP(停止位检测)。状态机根据当前输入的串行信号和当前状态来决定如何动作,以正确地接收一个完整的UART...

Global site tag (gtag.js) - Google Analytics