public class Main {
public static void main(String[] args) {
WebpageCapture demo = new WebpageCapture();
try {
demo.captureHtml("111.142.55.73");
//demo.captureJavascript("107818590577");
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class WebpageCapture {
public void captureHtml(String ip) throws Exception {
String strURL = "http://ip.chinaz.com/?IP=" + ip;
URL url = new URL(strURL);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
InputStreamReader input = new InputStreamReader(httpConn
.getInputStream(), "utf-8");
BufferedReader bufReader = new BufferedReader(input);
String line = "";
StringBuilder contentBuf = new StringBuilder();
while ((line = bufReader.readLine()) != null) {
contentBuf.append(line);
}
String buf = contentBuf.toString();
int beginIx = buf.indexOf("查询结果["); //这里出错,为什么找不到这个字符串
int endIx = buf.indexOf("上面四项依次显示的是");
String result = buf.substring(beginIx, endIx);
System.out.println("captureHtml()的结果:\n" + result);
}
}
出错为:
java.lang.StringIndexOutOfBoundsException: String index out of range: -10424
at java.lang.String.substring(String.java:1955)
at cn.edu.xmu.zgy.WebpageCapture.captureHtml(WebpageCapture.java:24)
at cn.edu.xmu.zgy.Main.main(Main.java:7)
------解决思路----------------------
int endIx = buf.indexOf("上面四项依次显示的是");
是这行错了好吧,,,,
应该是:
int endIx = buf.indexOf("上面三项依次显示的是");