首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

使用httpclient后,return不返回值,请大家帮忙看一下解决方法

2012-02-09 
使用httpclient后,return不返回值,请大家帮忙看一下大家帮我看一下这个代码:importjava.io.IOExceptionim

使用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]+ "--- ");}
} //测试

}

热点排行