JavaShuo
栏目
标签
java使用httpclient封装post请求和get的请求
时间 2019-11-11
标签
java
使用
httpclient
封装
post
求和
请求
栏目
Java
繁體版
原文
原文链接
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.StatusLine;
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.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
/**
* @author 马弦
* @date 2017年10月23日 下午2:49
* HttpClient工具类
*/
public
class HttpUtil {
private
static Logger logger = Logger.getLogger(HttpUtil.
class);
/**
* get请求
* @return
*/
public
static String doGet(String url) {
try {
HttpClient client =
new DefaultHttpClient();
//发送get请求
HttpGet request =
new HttpGet(url);
HttpResponse response = client.execute(request);
/**请求发送成功,并获得响应**/
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
/**读取服务器返回过来的json字符串数据**/
String strResult = EntityUtils.toString(response.getEntity());
return strResult;
}
}
catch (IOException e) {
e.printStackTrace();
}
return
null;
}
/**
* post请求(用于key-value格式的参数)
* @param url
* @param params
* @return
*/
public
static String doPost(String url, Map params){
BufferedReader in =
null;
try {
// 定义HttpClient
HttpClient client =
new DefaultHttpClient();
// 实例化HTTP方法
HttpPost request =
new HttpPost();
request.setURI(
new URI(url));
//设置参数
List<NameValuePair> nvps =
new ArrayList<NameValuePair>();
for (Iterator iter = params.keySet().iterator(); iter.hasNext();) {
String name = (String) iter.next();
String value = String.valueOf(params.get(name));
nvps.add(
new BasicNameValuePair(name, value));
//System.out.println(name +"-"+value);
}
request.setEntity(
new UrlEncodedFormEntity(nvps,HTTP.UTF_8));
HttpResponse response = client.execute(request);
int code = response.getStatusLine().getStatusCode();
if(code ==
200){
//请求成功
in =
new BufferedReader(
new InputStreamReader(response.getEntity()
.getContent(),
"utf-8"));
StringBuffer sb =
new StringBuffer(
"");
String line =
"";
String NL = System.getProperty(
"line.separator");
while ((line = in.readLine()) !=
null) {
sb.append(line + NL);
}
in.close();
return sb.toString();
}
else{
//
System.out.println(
"状态码:" + code);
return
null;
}
}
catch(Exception e){
e.printStackTrace();
return
null;
}
}
/**
* post请求(用于请求json格式的参数)
* @param url
* @param params
* @return
*/
public
static String doPost(String url, String params)
throws Exception {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost =
new HttpPost(url);
// 建立httpPost
httpPost.setHeader(
"Accept",
"application/json");
httpPost.setHeader(
"Content-Type",
"application/json");
String charSet =
"UTF-8";
StringEntity entity =
new StringEntity(params, charSet);
httpPost.setEntity(entity);
CloseableHttpResponse response =
null;
try {
response = httpclient.execute(httpPost);
StatusLine status = response.getStatusLine();
int state = status.getStatusCode();
if (state == HttpStatus.SC_OK) {
HttpEntity responseEntity = response.getEntity();
String jsonString = EntityUtils.toString(responseEntity);
return jsonString;
}
else{
logger.error(
"请求返回:"+state+
"("+url+
")");
}
}
finally {
if (response !=
null) {
try {
response.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
try {
httpclient.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
return
null;
}
}
httpclient是一个很是经常使用的工具,在项目开发的时候,常常须要请求第三方的接口,我整理好了这段代码,之后回头找的时候就方便啦!
java
相关文章
1.
java使用httpclient封装post请求和get的请求
2.
HTTPClient Get请求 POST请求
3.
HttpClient的Post请求和Get请求
4.
get请求和post请求
5.
HttpClient入门get post请求
6.
HttpClient 4.5.3 get和post请求https post
7.
使用HttpClient进行Get请求使用HttpClient进行Get请求
8.
使用httpClient发送get\post请求
9.
java HttpClient GET请求
10.
使用httpclient发送post请求与get请求
更多相关文章...
•
HTTP 请求方法
-
HTTP 教程
•
发送ICMP时间戳请求
-
TCP/IP教程
•
Composer 安装与使用
•
适用于PHP初学者的学习线路和建议
相关标签/搜索
请求
请求之密
AJAX请求
请求体
请求者
并发请求
请求头
请使用
请用
HTTP/TCP
系统网络
软件设计
Java
XLink 和 XPointer 教程
Hibernate教程
MyBatis教程
java
应用
Java 8
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
FM理论与实践
2.
Google开发者大会,你想知道的都在这里
3.
IRIG-B码对时理解
4.
干货:嵌入式系统设计开发大全!(万字总结)
5.
从域名到网站—虚机篇
6.
php学习5
7.
关于ANR线程阻塞那些坑
8.
android studio databinding和include使用控件id获取报错 不影响项目正常运行
9.
我女朋友都会的安卓逆向(四 动态调试smali)
10.
io存取速度
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
java使用httpclient封装post请求和get的请求
2.
HTTPClient Get请求 POST请求
3.
HttpClient的Post请求和Get请求
4.
get请求和post请求
5.
HttpClient入门get post请求
6.
HttpClient 4.5.3 get和post请求https post
7.
使用HttpClient进行Get请求使用HttpClient进行Get请求
8.
使用httpClient发送get\post请求
9.
java HttpClient GET请求
10.
使用httpclient发送post请求与get请求
>>更多相关文章<<