httpclient 4.3.1 post get的工具类

梦里梦外; 2021-06-24 13:59 340阅读 0赞

package com.ryx.util;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import org.apache.commons.lang.StringUtils;

import org.apache.http.HttpEntity;

import org.apache.http.NameValuePair;

import org.apache.http.client.config.RequestConfig;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClientBuilder;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

/**

` * 基于 httpclient 4.3.1版本的 http工具类`

` * @author mcSui`

` *`

` */`

public class HttpTookit {

` private`static final CloseableHttpClient httpClient;

` public`static final String CHARSET = "UTF-8" ;

` static`{

` RequestConfig config = RequestConfig.custom().setConnectTimeout(`60000 ).setSocketTimeout( 15000 ).build();

` httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();`

` }`

` public`static String doGet(String url, Map<String, String> params){

` return`doGet(url, params,CHARSET);

` }`

` public`static String doPost(String url, Map<String, String> params){

` return`doPost(url, params,CHARSET);

` }`

` /**`

` * HTTP Get 获取内容`

` * @param url 请求的url地址 ?之前的地址`

` * @param params 请求的参数`

` * @param charset 编码格式`

` * @return 页面内容`

` */`

` public`static String doGet(String url,Map<String,String> params,String charset){

` if`(StringUtils.isBlank(url)){

` return`null ;

` }`

` try`{

` if`(params != null && !params.isEmpty()){

` List pairs = `new ArrayList<NameValuePair>(params.size());

` for`(Map.Entry<String,String> entry : params.entrySet()){

` String value = entry.getValue();`

` if`(value != null ){

` pairs.add(`new BasicNameValuePair(entry.getKey(),value));

` }`

` }`

` url += `"?" + EntityUtils.toString( new UrlEncodedFormEntity(pairs, charset));

` }`

` HttpGet httpGet = `new HttpGet(url);

` CloseableHttpResponse response = httpClient.execute(httpGet);`

` int`statusCode = response.getStatusLine().getStatusCode();

` if`(statusCode != 200 ) {

` httpGet.abort();`

` throw`new RuntimeException( "HttpClient,error status code :" + statusCode);

` }`

` HttpEntity entity = response.getEntity();`

` String result = `null ;

` if`(entity != null ){

` result = EntityUtils.toString(entity, `"utf-8" );

` }`

` EntityUtils.consume(entity);`

` response.close();`

` return`result;

` } `catch (Exception e) {

` e.printStackTrace();`

` }`

` return`null ;

` }`

` /**`

` * HTTP Post 获取内容`

` * @param url 请求的url地址 ?之前的地址`

` * @param params 请求的参数`

` * @param charset 编码格式`

` * @return 页面内容`

` */`

` public`static String doPost(String url,Map<String,String> params,String charset){

` if`(StringUtils.isBlank(url)){

` return`null ;

` }`

` try`{

` List pairs = `null ;

` if`(params != null && !params.isEmpty()){

` pairs = `new ArrayList<NameValuePair>(params.size());

` for`(Map.Entry<String,String> entry : params.entrySet()){

` String value = entry.getValue();`

` if`(value != null ){

` pairs.add(`new BasicNameValuePair(entry.getKey(),value));

` }`

` }`

` }`

` HttpPost httpPost = `new HttpPost(url);

` if`(pairs != null && pairs.size() > 0 ){

` httpPost.setEntity(`new UrlEncodedFormEntity(pairs,CHARSET));

` }`

` CloseableHttpResponse response = httpClient.execute(httpPost);`

` int`statusCode = response.getStatusLine().getStatusCode();

` if`(statusCode != 200 ) {

` httpPost.abort();`

` throw`new RuntimeException( "HttpClient,error status code :" + statusCode);

` }`

` HttpEntity entity = response.getEntity();`

` String result = `null ;

` if`(entity != null ){

` result = EntityUtils.toString(entity, `"utf-8" );

` }`

` EntityUtils.consume(entity);`

` response.close();`

` return`result;

` } `catch (Exception e) {

` e.printStackTrace();`

` }`

` return`null ;

` }`

` public`static void main(String []args){

` String getData = doGet(`"http://www.oschina.net/" , null );

` System.out.println(getData);`

` System.out.println(`"----------------------分割线-----------------------" );

` String postData = doPost(`"http://www.oschina.net/" , null );

` System.out.println(postData);`

` }`

}

``

``

``

ps:最新的httpclientjar包现在:http://hc.apache.org/downloads.cgi

发表评论

表情:
评论列表 (有 0 条评论,340人围观)

还没有评论,来说两句吧...

相关阅读