import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class Client
{
public static void test(String url,String encode,String path)
{
HttpClient httpClient = new HttpClient();
// httpClient.getHostConfiguration().setProxy(proxyHost, proxyPort) 可设置代理
// post方法
PostMethod postMethod = new PostMethod(url);
String from = "广州";
String to = "成都";
//需要的参数名称和值
NameValuePair[] paras = new NameValuePair[3];
paras[0] = new NameValuePair("from", from);
paras[1] = new NameValuePair("to",to);
paras[2] = new NameValuePair("act", "3");
postMethod.addParameters(paras);
postMethod.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)");
postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset="+encode);
postMethod.setRequestHeader("Referer", "http://www.ttkdex.com/");
BufferedReader reader = null;
BufferedWriter writer = null;
try
{
//响应状态码 成功为200
int code = httpClient.executeMethod(postMethod);
if(HttpStatus.SC_OK != code)
{
System.out.println("响应不成功");
return;
}
System.out.println("响应成功:code="+code);
reader = new BufferedReader(new InputStreamReader(postMethod.getResponseBodyAsStream(), encode));
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path), encode));
String line = null;
while ((line = reader.readLine()) != null)
{
writer.write(line+"\r\n");
}
reader.close();
writer.close();
System.out.println("success ! result in file : "+path);
}
catch (HttpException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
//完成,释放连接,释放资源
postMethod.releaseConnection();
try
{
if(reader != null)
{
reader.close();
}
if(writer != null)
{
reader.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
System.out.println("run over ...");
}
public static void main(String[] args)
{
String url = "http://qq.ip138.com/train/train_search.asp";
String encode = "gb2312";
String savePath = "E:/test.html";
test(url,encode,savePath);
}
}