100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java使用httpclient封装post请求和get的请求

java使用httpclient封装post请求和get的请求

时间:2022-01-13 23:24:51

相关推荐

java使用httpclient封装post请求和get的请求

在我们程序员生涯中,经常要复用代码,所以我们应该养成时常整理代码的好习惯,以下是我之前封装的httpclient的post和get请求所用的代码:

package mon;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import .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 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是一个非常常用的工具,在项目开发的时候,经常需要请求第三方的接口,我整理好了这段代码,以后回头找的时候就方便啦!

---------------------

作者:马弦

来源:CSDN

原文:/qq9808/article/details/78320816

版权声明:本文为博主原创文章,转载请附上博文链接!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。