Exception in thread "main" java.lang.Exception: 网页内容获取异常!Http Status Code:403

问题描述

packagecom.mobile.util;importjava.util.regex.Matcher;importjava.util.regex.Pattern;importorg.apache.commons.httpclient.HttpClient;importorg.apache.commons.httpclient.NameValuePair;importorg.apache.commons.httpclient.methods.PostMethod;importorg.apache.commons.httpclient.params.HttpMethodParams;/***通过手机号码,获得该号码的归属地*@authorAdministrator*/publicclassMobileFromUtil{//正则表达式,抽取手机归属地publicstaticfinalStringREGEX_GET_PROVINCE="查询结果.*?-->(.*?)&";publicstaticfinalStringREGEX_GET_CITY="";publicstaticfinalStringREGEX_GET_TYPE="";publicstaticfinalStringREGEX_GET_MOBILE="(?is)<td.*?>您查询的手机号码段</td>.*?<td.*?>(.*?)</td>.*?<td.*?>卡号归属地</td>.*?<td.*?>(.*?)</td>.*?<td.*?>卡&nbsp;类&nbsp;型</td>.*?<td.*?>(.*?)</td>";//正则表达式,审核要获取手机归属地的手机是否符合格式,可以只输入手机号码前7位publicstaticfinalStringREGEX_IS_MOBILE="(?is)(^1[3|4|5|8][0-9]\d{4,8}$)";/***获得手机号码归属地*@parammobileNumber*@return*@throwsException*/publicstaticStringgetMobileFrom(StringmobileNumber)throwsException{if(!veriyMobile(mobileNumber)){thrownewException("不是完整的11位手机号或者正确的手机号前七位");}HttpClientclient=null;PostMethodmethod=null;NameValuePairmobileParameter=null;NameValuePairactionParameter=null;inthttpStatusCode;StringhtmlSource=null;Stringresult=null;try{client=newHttpClient();client.getHostConfiguration().setHost("www.ip138.com",8080,"http");method=newPostMethod("/search.asp");mobileParameter=newNameValuePair("mobile",mobileNumber);actionParameter=newNameValuePair("action","mobile");method.setRequestBody(newNameValuePair[]{actionParameter,mobileParameter});//设置编码method.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GB2312");client.executeMethod(method);httpStatusCode=method.getStatusLine().getStatusCode();if(httpStatusCode!=200){thrownewException("网页内容获取异常!HttpStatusCode:"+httpStatusCode);}htmlSource=method.getResponseBodyAsString();if(htmlSource!=null&&!htmlSource.equals("")){result=parseMobileFrom(htmlSource);}}catch(RuntimeExceptione){e.printStackTrace();}finally{method.releaseConnection();}returnresult;}/***从返回的结果网页内容中获取手机号码归属地,结果为:省份城市*@paramhtmlSource*@return*/publicstaticStringparseMobileFrom(StringhtmlSource){Patternp1=null;Matcherm1=null;Stringresult1=null;htmlSource=htmlSource.replaceAll("<!--.*?-->","");p1=Pattern.compile(REGEX_GET_MOBILE);m1=p1.matcher(htmlSource);if(m1.find()){System.out.println(m1.group(1)+","+m1.group(2).replace("&nbsp;",",")+","+m1.group(3));}returnresult1;}/***验证手机号*@parammobileNumber*@return*/publicstaticbooleanveriyMobile(StringmobileNumber){Patternp=null;Matcherm=null;p=Pattern.compile(REGEX_IS_MOBILE);m=p.matcher(mobileNumber);returnm.matches();}/***测试*@paramargs*@throwsException*/publicstaticvoidmain(String[]args)throwsException{getMobileFrom("13888888888");}}执行之后报这个错:Exceptioninthread"main"java.lang.Exception:网页内容获取异常!HttpStatusCode:403atcom.mobile.util.MobileFromUtil.getMobileFrom(MobileFromUtil.java:52)atcom.mobile.util.MobileFromUtil.main(MobileFromUtil.java:103)jar包:commons-codec-1.6.jarcommons-logging-1.1.1.jarcommons-httpclient-3.1.jar403错误是禁止访问,但是我直接在浏览器上www.ip138.com查询,可以访问的,这是怎么回事?

解决方案

本帖最后由 sc19860709 于 2012-11-09 15:56:51 编辑
解决方案二:
这类问题都没什么人回复啊,楼主解决了没?
解决方案三:
403权限问题,有可能是跨域请求之类的都有可能

时间: 2024-09-05 10:55:35

Exception in thread &amp;quot;main&amp;quot; java.lang.Exception: 网页内容获取异常!Http Status Code:403的相关文章

java.lang.Exception: DEBUG -- CLOSE BY CLIENT STACK TRACE 的理解

[2013-12-06 11:06:21,715] [C3P0PooledConnectionPoolManager[identityToken->2tl0n98y1iwg7cbdzzq7a|719f1f]-HelperThread-#2] DEBUG - com.mchange.v2.c3p0.impl.NewPooledConnection@484c6b closed by a client. java.lang.Exception: DEBUG -- CLOSE BY CLIENT STA

connection-Connection has been abandoned :java.lang.Exception

问题描述 Connection has been abandoned :java.lang.Exception 使用的DBCP连接池和Mysql数据库,偶尔会出现这种异常,不知是什么导致的,并且在出现这个异常的地方进行对Exception的catch,但是奇怪的时捕获不了这种异常,异常一直被传回虚拟机然后打印,请哪位大侠指导一下,具体的异常如下 警告: Connection has been abandoned PooledConnection[com.mysql.jdbc.Connection

谈一谈JUnit神奇的报错 java.lang.Exception:No tests found matching

最近在学习Spring+SpringMVC+MyBatis,一个人的挖掘过程确实有点艰难,尤其是有一些神奇的报错让你会很蛋疼.特别是接触一些框架还是最新版本的时候,会因为版本问题出现很多错误,欢迎大家一起学习交流 这篇就说一下困扰我昨晚2小时的一个报错,nitializationError(org.junit.runner.manipulation.Filter)或者No tests found matching异常,查阅了很多资料,总结一下这些情况和解决办法. 1.最容易发现的错误,就如报错所

用java2word报错:java.lang.Exception: 初始化类库出错,请检查是否注册了组件 Word.Application

问题描述 小弟要做一个java操作word的应用,在网上找了很多之后决定使用java2word.可是程序报如下错误:java.lang.Exception:初始化类库出错,请检查是否注册了组件Word.Application.注册命令为'regsvr32文件名'.望高手指点一二.小弟感激不尽. 解决方案 解决方案二:java软件安装的不正确啊,重新装个试试!!解决方案三:那个JAVA软件啊?你指的是java2word还是myeclipse还是jdk?解决方案四:怎么没人答啊?这帖子不能沉啊!!!

求解答-最好运行结果说是Exception in thread &amp;amp;quot;main&amp;amp;quot; java.NoSuchMethordError:main

问题描述 最好运行结果说是Exception in thread "main" java.NoSuchMethordError:main import java.applet.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; //import java.Math.*; public class cal extends Applet { //定义所有需要使用的全局变量 String str="

hashmap-Java中遇到的一个异常Exception in thread &amp;amp;quot;main&amp;amp;quot; java.lang.NullPointerException

问题描述 Java中遇到的一个异常Exception in thread "main" java.lang.NullPointerException import java.util.*; public class NewHashTest{ public static void main(String[] args) { HashMap hash = new HashMap(); Emp emp1 = new Emp(""laoda""111&q

java sql 错误-Exception in thread &amp;amp;quot;main&amp;amp;quot;

问题描述 Exception in thread "main" 5C Exception in thread ""main"" java.lang.NullPointerException 老是出现这个错误,是为什么呢 解决方案 线程里面出现了空指针异常 解决方案二: AxisFault faultCode: {http://xml.apache.org/axis/}HTTP faultSubcode: faultString: (400)Bad

List操作错误Exception in thread &amp;amp;quot;main&amp;amp;quot; java.lang.IllegalStateException

问题描述 Iterator<Teacher> iter = teacherList.iterator();while(iter.hasNext()){Teacher teacher =iter.next();//①查找老师的最大上限值,如果该老师已经达到上限了,则将该老师从List中拿出,不予安排if(teacher.getMaxnum()<=teacher.getRealnum()){iter.remove();teacherList.remove(teacher);}//②找到该考试

求解答-运行结果说是Exception in thread &amp;amp;quot;main&amp;amp;quot; java.NoClassDeFoundError:Example

问题描述 运行结果说是Exception in thread "main" java.NoClassDeFoundError:Example import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.*; import j