java class url请求_java网络编程之http请求工具类-个人学习库

import lombok.extern.slf4j.Slf4j;

import org.apache.http.*;

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

/**

* Create with IDEA

*

* @Author: zspmsir

* @E-Mail: boss@grstudy.com

* @Date: 2019/7/2

* @Time: 13:03

* @Description:

*/

@Slf4j

public class HttpUtil {

/**

* @Auther: zspmsir

* @E-Mail: boss@grstudy.com

* @Date: 2019/7/2_13:37

* @Param: [url]

* @Return: java.lang.String

* @Description: get请求

*/

public static String doGet(String url) {

try {

HttpClient client = new DefaultHttpClient();

HttpGet request = new HttpGet(url);

HttpResponse response = client.execute(request);

if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

String strResult = EntityUtils.toString(response.getEntity());

return strResult;

}

}

catch (IOException e) {

e.printStackTrace();

}

return null;

}

/**

* @Auther: zspmsir

* @E-Mail: boss@grstudy.com

* @Date: 2019/7/2_13:37

* @Param: [url, params]

* @Return: java.lang.String

* @Description: post请求(用于key-value格式的参数)

*/

public static String doPost(String url, Map params){

BufferedReader in = null;

try {

HttpClient client = new DefaultHttpClient();

HttpPost request = new HttpPost();

request.setURI(new URI(url));

List nvps = new ArrayList();

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));

}

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{

return null;

}

}

catch(Exception e){

e.printStackTrace();

return null;

}

}

/**

* @Auther: zspmsir

* @E-Mail: boss@grstudy.com

* @Date: 2019/7/2_13:38

* @Param: [url, params]

* @Return: java.lang.String

* @Description: post请求(用于请求json格式的参数)

*/

public static String doPost(String url, String params) throws Exception {

CloseableHttpClient httpclient = HttpClients.createDefault();

HttpPost httpPost = new HttpPost(url);

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{

return null;

}

}

finally {

if (response != null) {

try {

response.close();

} catch (IOException e) {

e.printStackTrace();

}

}

try {

httpclient.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return null;

}

}

版权声明:个人学习库版权所有,转载请标明出处

转载请注明:https://blog.grstudy.com/java/code/30

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值