HttpClientUtil 实现doget 和 dopost

简介:

package com.shangyu.utils;


import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Set;


import org.apache.http.Header;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.NameValuePair;

import org.apache.http.client.HttpClient;

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.HttpClients;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;


public class HttpClientUtil {

private static final Logger log = LoggerFactory.getLogger(HttpClientUtil.class);


public static String UTF8 = "UTF-8";


public static String httpPost(String url, Map<String, String> params, String encoding) throws Exception {

log.debug("收到HTTP POST请求");


String result = "";

// 创建默认的httpClient实例.    

CloseableHttpClient httpclient = HttpClients.createDefault();

// 创建httppost    

HttpPost httppost = new HttpPost(url);


//参数

List<NameValuePair> formparams = new ArrayList<NameValuePair>();

if (params != null) {

log.debug("发送post参数");

Set<String> keys = params.keySet();


for (String key : keys) {

log.debug("param:" + key);

formparams.add(new BasicNameValuePair(key, params.get(key)));

}


}


UrlEncodedFormEntity uefEntity;

try {

uefEntity = new UrlEncodedFormEntity(formparams, encoding);

httppost.setEntity(uefEntity);


log.debug("executing request " + httppost.getURI());


CloseableHttpResponse response = httpclient.execute(httppost);


try {

log.debug("返回HTTP状态:" + response.getStatusLine());


Header[] headers = response.getAllHeaders();


log.debug("返回HTTP头");

log.debug("--------------------------------------");

for (Header header : headers) {

log.debug(header.getName() + "-->" + header.getValue());

}

log.debug("--------------------------------------");


HttpEntity entity = response.getEntity();

if (entity != null) {

result = EntityUtils.toString(entity, encoding);

log.debug("--------------------------------------");

log.debug("Response content: " + result);

log.debug("--------------------------------------");

}


} finally {

response.close();

}

} catch (IOException e) {

throw e;

} finally {

// 关闭连接,释放资源    

try {

httpclient.close();

} catch (IOException e) {

}

}


return result;

}


public static String httpGet(String url, String encoding) throws Exception {


log.debug("收到HTTP GET请求");


String result = "";


CloseableHttpClient httpclient = HttpClients.createDefault();

try {

// 创建httpget.    

HttpGet httpget = new HttpGet(url);

log.debug("executing request " + httpget.getURI());

// 执行get请求.    

CloseableHttpResponse response = httpclient.execute(httpget);

try {


log.debug("返回HTTP状态:" + response.getStatusLine());


Header[] headers = response.getAllHeaders();


log.debug("返回HTTP头");

log.debug("--------------------------------------");

for (Header header : headers) {

log.debug(header.getName() + "-->" + header.getValue());

}

log.debug("--------------------------------------"); // 获取响应实体    

HttpEntity entity = response.getEntity();

if (entity != null) {

result = EntityUtils.toString(entity, encoding);

// 打印响应内容    

log.debug("Response content: " + result);

}

log.debug("------------------------------------");

} finally {

response.close();

}

} catch (Exception e) {

throw e;

} finally {

// 关闭连接,释放资源    

try {

httpclient.close();

} catch (IOException e) {

}

}

return result;


}

 

}

1
<br data-filtered= "filtered" >



本文转自 沉淀人生 51CTO博客,原文链接:http://blog.51cto.com/825272560/1862551

相关文章
|
7月前
|
应用服务中间件 容器
【JavaWeb】知识总结Ⅹ(HttpServletRequest, HttpServletResponse)
请求行信息:可以使用getMethod()方法获取请求方法(如GET、POST等),使用getRequestURI()方法获取请求的URI(统一资源标识符),使用getProtocol()方法获取请求使用的协议(如HTTP/1.1)。 请求头信息:可以使用getHeader(String name)方法获取指定名称的请求头的值,使用getHeaderNames()方法获取所有请求头的名称的枚举。 请求参数:可以使用getParameter(String name)方法获取指定名称的请求参数的值,使用getParameterNames()方法获取所有请求参数的名称的枚举。
|
7月前
|
应用服务中间件 调度
Service、doGet、doPost 方法
Service、doGet、doPost 方法
60 0
|
8月前
|
JSON 编解码 前端开发
认识HttpServletRequest和HttpServletResponse
认识HttpServletRequest和HttpServletResponse
QGS
|
11月前
|
缓存 前端开发 安全
浅谈HttpServlet之重写doGet、doPost
200表示请求响应成功,正常结束。 404表示访问资源不存在。 405表示前端发送的请求方式与后端请求的处理方式不一致。
QGS
121 0
|
XML 缓存 Java
HttpServletRequest 对象
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。 其他的具体方法就不详细描述了,具体方法上的使用看API,或者网上查查,有很多的。这里就介绍一下 请求方式 和 获取参数 的问题
|
应用服务中间件
HttpServletResponse 类
HttpServletResponse 类
HttpServletResponse 类
|
缓存 开发者
HttpServletResponse类
HttpServletResponse类
56 0
|
应用服务中间件
HttpServletRequest 类
HttpServletRequest 类
HttpServletRequest 类
|
编译器 应用服务中间件
HttpServletResponse接口
HttpServletResponse接口
129 0
HttpServletResponse接口