HTTPClient 基础使用 一

来源:互联网 发布:数据库冗余设计 编辑:程序博客网 时间:2024/06/06 14:13
package CJava;import java.io.IOException;import org.apache.commons.httpclient.*;import org.apache.commons.httpclient.methods.*;/** * 本文简单介绍一些httpclient的基本内容,因为在实际开发当中使用到 * 基于http协议,现在网络上基本上是属于比较常用的协议类型, * HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包, * @author lvzh * */public class HttpClientTest {private HttpClient client = new HttpClient();/** * 读取页面的内容,不管是http还是https * 将访问地址 */public void getWebPageContent(){HttpMethod method=new GetMethod("http://www.baidu.com");try {client.executeMethod(method);System.out.println("server status is : "+method.getStatusLine());System.out.println("content is : "+method.getResponseBodyAsString());method.releaseConnection();} catch (Exception e) {e.printStackTrace();}}/** * 得到一个使用post提交的对象 * @return */private static HttpMethod getPostMethod(){      PostMethod post = new PostMethod( "/simcard.php" );      NameValuePair simcard = new NameValuePair( "mob" , "1330227" );      post.setRequestBody( new NameValuePair[] { simcard});      return post;   }/** * 返回一个通过GET提交的对象 * @return */public static HttpMethod getGETMethod(){return new GetMethod("/simcard.php?simcard=1330227");}/** * 像特定页面提交参数 */public void sampleOne(){  HttpMethod method = null;      client.getHostConfiguration().setHost( "www.imobile.com.cn" , 80, "http" );      /*使用post方式提交*/      method = getPostMethod();      try {client.executeMethod(method);  //打印服务器返回的状态      System.out.println(method.getStatusLine());   //打印结果页面      String response=new String(method.getResponseBodyAsString().getBytes("ISO-8859-1"));      //打印返回的信息      System.out.println(response);      method.releaseConnection();      } catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/** * 模拟重定向    simcard.php  --重定向到---> www.imobile.com.cn */public void simulateRedirect(){HttpMethod method = null;client.getHostConfiguration().setHost( "www.imobile.com.cn" , 80, "http" );method = getPostMethod();try{client.executeMethod(method);int statuscode = method.getStatusCode();if ((statuscode == HttpStatus.SC_MOVED_TEMPORARILY) || (statuscode == HttpStatus.SC_MOVED_PERMANENTLY) || (statuscode == HttpStatus.SC_SEE_OTHER) || (statuscode == HttpStatus.SC_TEMPORARY_REDIRECT)) {// 读取新的 URL 地址   Header header=method.getResponseHeader("location");   if (header!=null){      String newuri=header.getValue();      System.out.println("newuri is:"+newuri);      if((newuri==null)||(newuri.equals("")))         newuri="/";         GetMethod redirect=new GetMethod(newuri);         client.executeMethod(redirect);         System.out.println("Redirect:"+redirect.getStatusLine().toString());         String response=new String(redirect.getResponseBodyAsString().getBytes("gbk"));      //打印返回的信息      System.out.println(response);         redirect.releaseConnection();   }else    System.out.println("Invalid redirect");}}catch(Exception e){e.printStackTrace();}}public static void main(String[] args){HttpClientTest client  = new HttpClientTest();client.simulateRedirect();}}

原创粉丝点击