java客户端post与get请求

转载 2017年01月03日 11:12:28
使用httpclient工具包commons-httpclient-3.1.jar,依赖commons-logging-1.0.4.jar和commons-codec-1.3.jar
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Map;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.httpclient.util.URIUtil;

/**
 * 
 * 
 * <p>Title:HttpTookitEnhance</p>
 * <p>Description: httpclient模拟http请求,解决返回内容乱码问题</p>
 * <p>Copyright: Copyright (c) 2010</p>
 * <p>Company: </p>
 * @author libin
 * @version 1.0.0
 */
public class HttpTookitEnhance
{
      /** 
       * 执行一个HTTP GET请求,返回请求响应的HTML 
       * 
       * @param url                 请求的URL地址 
       * @param queryString 请求的查询参数,可以为null 
       * @param charset         字符集 
       * @param pretty            是否美化 
       * @return 返回请求响应的HTML 
       */
      public static String doGet ( String url, String queryString, String charset, boolean pretty )
      {
            StringBuffer response = new StringBuffer();
            HttpClient client = new HttpClient();
            HttpMethod method = new GetMethod(url);
            try
            {
                  if ( queryString != null && !queryString.equals("") )
                        //对get请求参数做了http请求默认编码,好像没有任何问题,汉字编码后,就成为%式样的字符串 
                        method.setQueryString(URIUtil.encodeQuery(queryString));
                  client.executeMethod(method);
                  if ( method.getStatusCode() == HttpStatus.SC_OK )
                  {
                        BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), charset));
                        String line;
                        while ( ( line = reader.readLine() ) != null )
                        {
                              if ( pretty )
                                    response.append(line).append(System.getProperty("line.separator"));
                              else
                                    response.append(line);
                        }
                        reader.close();
                  }
            }
            catch ( URIException e )
            {
            }
            catch ( IOException e )
            {
            }
            finally
            {
                  method.releaseConnection();
            }
            return response.toString();
      }

      /** 
       * 执行一个HTTP POST请求,返回请求响应的HTML 
       * 
       * @param url         请求的URL地址 
       * @param params    请求的查询参数,可以为null 
       * @param charset 字符集 
       * @param pretty    是否美化 
       * @return 返回请求响应的HTML 
       */
      public static String doPost ( String url, Map<String, String> params, String charset, boolean pretty )
      {
            StringBuffer response = new StringBuffer();
            HttpClient client = new HttpClient();
            HttpMethod method = new PostMethod(url);
            //设置Http Post数据 
            if ( params != null )
            {
                  HttpMethodParams p = new HttpMethodParams();
                  for ( Map.Entry<String, String> entry : params.entrySet() )
                  {
                        p.setParameter(entry.getKey(), entry.getValue());
                  }
                  method.setParams(p);
            }
            try
            {
                  client.executeMethod(method);
                  if ( method.getStatusCode() == HttpStatus.SC_OK )
                  {
                        BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), charset));
                        String line;
                        while ( ( line = reader.readLine() ) != null )
                        {
                              if ( pretty )
                                    response.append(line).append(System.getProperty("line.separator"));
                              else
                                    response.append(line);
                        }
                        reader.close();
                  }
            }
            catch ( IOException e )
            {
            }
            finally
            {
                  method.releaseConnection();
            }
            return response.toString();
      }

      public static void main ( String [] args )
      {
            String y = doGet("http://video.sina.com.cn/life/tips.html", null, "GBK", true);
            System.out.println(y);
      }

}

JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求

JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得...

JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求

JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得...

JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求

JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是...

【网络】JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求

JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求   哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是...

JAVA 客户端跳转与服务器端跳转 get与post

虽然说get 与post 问题很老套了,但是作为web 开发人员来说对于这个的理解确实很有必要,其实说到get 和post,还可以有doGet 与doPost 和客户端跳转与服务端跳转的区别; ...
  • well386
  • well386
  • 2016年12月04日 12:44
  • 1053

一般处理程序获取客户端post和get的请求信息

客户端浏览器 html 代码: --> 用户名: 密码: 服务器端一般处理程序代码: us...

Android客户端发送Get和Post请求

android客户端发送get和post请求的核心基础代码

android 客户端与服务端的通信 发送get和post请求并获取数据

android 客户端,服务端的相互通信
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java客户端post与get请求
举报原因:
原因补充:

(最多只允许输入30个字)