java HttpClient Post实例

private void postMethod(String url) throws IOException
 {     
  url = "http://www.newsmth.net/bbslogin2.php";
  PostMethod postMethod = new PostMethod(url);
  // 填入各个表单域的值
  NameValuePair[] data = { new NameValuePair("id", "herrapfel"),new NameValuePair("passwd", "") };
  // 将表单的值放入postMethod中
  postMethod.setRequestBody(data);
  // 执行postMethod
  int statusCode = httpClient.executeMethod(postMethod);
  System.out.println(" status code:" + statusCode);
  // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
 

 

if(statusCode == HttpStatus.SC_OK)
  {
   StringBuffer contentBuffer = new StringBuffer();
   InputStream in = postMethod.getResponseBodyAsStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(in,postMethod.getResponseCharSet()));
            String inputLine = null;
            while((inputLine = reader.readLine()) != null)
            {
             contentBuffer.append(inputLine);
             System.out.println("input line:"+ inputLine);
             contentBuffer.append("/n");
            }
            in.close();

  }
  else if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) 
  {
      // 从头中取出转向的地址
      Header locationHeader = postMethod.getResponseHeader("location");
      String location = null;
      if (locationHeader != null) 
      {
       location = locationHeader.getValue();
       System.out.println("The page was redirected to:" + location);
      } 
      else 
      {
       System.err.println("Location field value is null.");
      }
  }

 

 

 

 }



-------------------------------------------------------

Java模拟POST表单提交HttpClient操作  

2012-07-28 08:40:57|  分类: java_js_flex_css |  标签:httpclient  |举报|字号 订阅

public static void Login() {
       String url = "http://www.***.com/login";
       PostMethod postMethod = new PostMethod(url);
       // 填入各个表单域的值
       NameValuePair[] data = {
               new NameValuePair("account", "[email protected]"),
               new NameValuePair("nextUrl", ""),
               new NameValuePair("lcallback", ""),
               new NameValuePair("password    ", "******"),
               new NameValuePair("persistent", "1"), };
       // 将表单的值放入postMethod中
       postMethod.setRequestBody(data);
       // 执行postMethod
       int statusCode = 0;
       try {
           statusCode = httpClient.executeMethod(postMethod);
       } catch (HttpException e) {
           e.printStackTrace();
       } catch (IOException e) {
           e.printStackTrace();
       }
       // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
       // 301或者302
       if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY
               || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
           // 从头中取出转向的地址
           Header locationHeader = postMethod.getResponseHeader("location");
           String location = null;
           if (locationHeader != null) {
               location = locationHeader.getValue();
               System.out.println("diandianLogin:" + location);
           } else {
               System.err.println("Location field value is null.");
           }
           return;
       } else {
           System.out.println(postMethod.getStatusLine());
           String str = "";
           try {
               str = postMethod.getResponseBodyAsString();
           } catch (IOException e) {
               e.printStackTrace();
           }
           System.out.println(str);
       }
       postMethod.releaseConnection();
       return;
   }


其中需要的jar包:

1、 commons-httpclient.jar

2、commons-codec.jar

3、commons-logging.jar

你可能感兴趣的:(java)