您的位置:首页 > 理论基础 > 计算机网络

java调用HttpPost,HttpGet调用示例

2017-09-19 17:47 381 查看

用途:

本文演示如何使用java调用 HttpPost,HttpGet类,并进行简单封装。

PS:添加了上下文支持,用于存储cookie信息,保证http访问连贯性。

代码

HttpUtil.java

import java.io.IOException;
import net.sf.json.JSONObject;

import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
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.client.protocol.HttpClientContext;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HttpUtil {
private static Logger logger = LoggerFactory.getLogger(HttpUtil.class);
private static HttpClientContext context = null;

private static HttpClientContext getContext() {
if (context == null)
context = HttpClientContext.create();
return context;
}

public static String post(String url, JSONObject jo) {
logger.info("req:" + url);
logger.info("param:" + jo);
StringEntity reqEntity = new StringEntity(jo.toString(), Consts.UTF_8);
reqEntity.setContentType("application/json");

HttpPost httppost = new HttpPost(url);
httppost.setEntity(reqEntity);
CloseableHttpClient client = HttpClients.createDefault();
String result = null;
try {
CloseableHttpResponse res = client.execute(httppost, getContext());

if (res.getStatusLine().getStatusCode() == 200) {
HttpEntity resEntity = res.getEntity();
if (resEntity != null) {
result = EntityUtils.toString(resEntity, Consts.UTF_8);
logger.info("res:" + result);
}
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}

public static String get(String url) {
CloseableHttpClient client = HttpClients.createDefault();
HttpGet httpget = new HttpGet(url);
CloseableHttpResponse res = null;
String result = null;
try {
res = client.execute(httpget, getContext());
if (res.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = res.getEntity();
if (entity != null) {
result = EntityUtils.toString(entity, Consts.UTF_8);
logger.info(result);
}
}
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}


HttpUtilTest.java

@Test
public void testHttpGet() {
String url = "http://www.baidu.com";
HttpUtil.get(url);
}

@Test
public void testHttpPost() {

JSONObject jo = new JSONObject();
jo.put("param1", "value1");
jo.put("param2", "value2");

HttpUtil.post(getUrl(), jo);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java cookie