使用httpclient后,return不返回值,请大家帮忙看一下
大家帮我看一下这个代码:
import java.io.IOException;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.GetMethod;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.httpclient.HttpClient;
public class getCode{
public static String readHtml(HttpClient client,String url) throws IOException {
StringBuffer a=new StringBuffer();
String htmlFile = " ";
File f1=new File( "E:\\jsp\\test.txt ");
if(!f1.exists()){ //检查文件是否存在
System.out.print( "没有相应的文件 ");
try
{
f1.createNewFile();
} catch (IOException e)
{
e.printStackTrace();
}
}
FileWriter fs=new FileWriter(f1);
int i=0;
String str = null;
GetMethod get = new GetMethod(url);
try {
client.executeMethod(get);
str = get.getResponseBodyAsString();
}
catch (HttpException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
get.releaseConnection();
fs.write(str);
BufferedReader reader=new BufferedReader(new FileReader( "E:\\jsp\\test.txt "));
String line=reader.readLine();
while(line!=null){
line = reader.readLine();
String r= "(\\r|\\n|\\s+ <td align=\ "center\ "\\s+> )(.*)( </td> |\\n|\\r) ";
String r1= "(.*共 <span class=\ "text_orange\ "> )(.*)( </span> 页.*) ";
Pattern s=Pattern.compile(r);
Matcher m = s.matcher(line);
boolean T=m.matches();
if(T){
a.append(m.group(2)+ ", ");
htmlFile=htmlFile+m.group(2)+ ", ";
//System.out.println( " "+m.group(2));//这儿输出有值
i++;
if(i%5==0)
a.append( "\n ");
}
Pattern s1=Pattern.compile(r1);
Matcher m1=s1.matcher(line);
boolean T1=m1.matches();
if(T1)
{
int pagecount=Integer.parseInt(m1.group(2)) ;
System.out.println( "--------总页数-------: "+pagecount);
}
} System.out.println( "名称: "+htmlFile);//在这儿输出htmlFile也是空的()不过好像根本就没有输
return a.toString();
}
public static void main(String[] args) throws IOException{
String[] aa=null;
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost( "www.12582.com ", 80);
readHtml( client, "/cqnxt/priceMarketingAction.do?eachOrAll=all&serviceName=jghq&globalLocationid=1168 ");
String str = readHtml(client, "/cqnxt/turnPageAction.do?index=2&keyWord2=&area=null ");
aa=str.split( ", ");
System.out.println( "名称为:\n ");
for(int i=0;i <aa.length;i++)
{System.out.print(aa[i]+ "--- ");}
} //测试
}
测试有值的..只是在while里面有值,出了while的范围就没有值 了.好像没有返回一样..根本就没有输出
[解决办法]
import java.io.IOException;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.GetMethod;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.httpclient.HttpClient;
public class getCode{
public static String readHtml(HttpClient client,String url) throws IOException {
StringBuffer a=new StringBuffer();
String htmlFile = " ";
File f1=new File( "e:\\jsp\\test.txt ");
if(!f1.exists()){ //检查文件是否存在
System.out.print( "没有相应的文件 ");
try
{
f1.createNewFile();
} catch (IOException e)
{
e.printStackTrace();
}
}
FileWriter fs=new FileWriter(f1);
int i=0;
String str = null;
GetMethod get = new GetMethod(url);
try {
client.executeMethod(get);
str = get.getResponseBodyAsString();
}
catch (HttpException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
get.releaseConnection();
fs.write(str);
BufferedReader reader=new BufferedReader(new FileReader( "e:\\jsp\\test.txt "));
String line = null;//String line=reader.readLine();
while((line = reader.readLine())!=null){
String r= "(\\r|\\n|\\s+ <td align=\ "center\ "\\s+> )(.*)( </td> |\\n|\\r) ";
String r1= "(.*共 <span class=\ "text_orange\ "> )(.*)( </span> 页.*) ";
Pattern s=Pattern.compile(r);
Matcher m = s.matcher(line);
boolean T=m.matches();
if(T){
a.append(m.group(2)+ ", ");
htmlFile=htmlFile+m.group(2)+ ", ";
//System.out.println( " "+m.group(2));//这儿输出有值
i++;
if(i%5==0)
a.append( "\n ");
}
Pattern s1=Pattern.compile(r1);
Matcher m1=s1.matcher(line);
boolean T1=m1.matches();
if(T1)
{
int pagecount=Integer.parseInt(m1.group(2)) ;
System.out.println( "--------总页数-------: "+pagecount);
}
} System.out.println( "名称: "+htmlFile);//在这儿输出htmlFile也是空的()不过好像根本就没有输
return a.toString();
}
public static void main(String[] args) throws IOException{
String[] aa=null;
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost( "www.12582.com ", 80);
readHtml( client, "/cqnxt/priceMarketingAction.do?eachOrAll=all&serviceName=jghq&globalLocationid=1168 ");
String str = readHtml(client, "/cqnxt/turnPageAction.do?index=2&keyWord2=&area=null ");
aa=str.split( ", ");
System.out.println( "名称为:\n ");
for(int i=0;i <aa.length;i++)
{System.out.print(aa[i]+ "--- ");}
} //测试
}