java使用httpclient发送post、get、put、delete请求

java

在接口测试中,我们可以使用jmeter、postman等工具来完成,也可以引入测试框架来进行自动化接口测试,比如java+testNG,python+reguests。所以对请求发送方法做一些封装是必要的。是testNG框架引入的最基础工作

 

package test.huatu.pen.util;

import java.io.IOException;

import org.apache.http.HttpEntity;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.config.RequestConfig;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpDelete;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.client.methods.HttpPut;

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.apache.log4j.BasicConfigurator;

import org.apache.log4j.Logger;

public class HttpRequestUtil {

private static Logger logger = Logger.getLogger(HttpRequestUtil.class);

/**

* 原生字符串发送get请求

*

* @param url

* @return

* @throws IOException

* @throws ClientProtocolException

*/

public static String doGet(String url, String token) {

BasicConfigurator.configure();

CloseableHttpClient httpClient = HttpClients.createDefault();

HttpGet httpGet = new HttpGet(url);

httpGet.setHeader("Content-type", "application/json");

httpGet.setHeader("DataEncoding", "UTF-8");

httpGet.setHeader("token", token);

RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build();

httpGet.setConfig(requestConfig);

CloseableHttpResponse httpResponse = null;

try {

httpResponse = httpClient.execute(httpGet);

HttpEntity entity = httpResponse.getEntity();

String result = EntityUtils.toString(entity);

logger.info("请求成功");

return result;

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

if (httpResponse != null) {

try {

httpResponse.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (null != httpClient) {

try {

httpClient.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return null;

}

/**

* 原生字符串发送post请求

*

* @param url

* @param jsonStr

* @return

* @throws IOException

*/

public static String doPost(String url, String token, String jsonStr) {

CloseableHttpClient httpClient = HttpClients.createDefault();

HttpPost httpPost = new HttpPost(url);

RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build();

httpPost.setConfig(requestConfig);

httpPost.setHeader("Content-type", "application/json");

httpPost.setHeader("DataEncoding", "UTF-8");

httpPost.setHeader("token", token);

CloseableHttpResponse httpResponse = null;

try {

httpPost.setEntity(new StringEntity(jsonStr));

httpResponse = httpClient.execute(httpPost);

HttpEntity entity = httpResponse.getEntity();

String result = EntityUtils.toString(entity);

return result;

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

if (httpResponse != null) {

try {

httpResponse.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (null != httpClient) {

try {

httpClient.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return null;

}

/**

* 原生字符串发送put请求

*

* @param url

* @param token

* @param jsonStr

* @return

* @throws ClientProtocolException

* @throws IOException

*/

public static String doPut(String url, String token, String jsonStr) {

CloseableHttpClient httpClient = HttpClients.createDefault();

HttpPut httpPut = new HttpPut(url);

RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build();

httpPut.setConfig(requestConfig);

httpPut.setHeader("Content-type", "application/json");

httpPut.setHeader("DataEncoding", "UTF-8");

httpPut.setHeader("token", token);

CloseableHttpResponse httpResponse = null;

try {

httpPut.setEntity(new StringEntity(jsonStr));

httpResponse = httpClient.execute(httpPut);

HttpEntity entity = httpResponse.getEntity();

String result = EntityUtils.toString(entity);

return result;

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

if (httpResponse != null) {

try {

httpResponse.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (null != httpClient) {

try {

httpClient.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return null;

}

/**

* 发送delete请求

*

* @param url

* @param token

* @param jsonStr

* @return

* @throws ClientProtocolException

* @throws IOException

*/

public static String doDelete(String url, String token, String jsonStr) {

CloseableHttpClient httpClient = HttpClients.createDefault();

HttpDelete httpDelete = new HttpDelete(url);

RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build();

httpDelete.setConfig(requestConfig);

httpDelete.setHeader("Content-type", "application/json");

httpDelete.setHeader("DataEncoding", "UTF-8");

httpDelete.setHeader("token", token);

CloseableHttpResponse httpResponse = null;

try {

httpResponse = httpClient.execute(httpDelete);

HttpEntity entity = httpResponse.getEntity();

String result = EntityUtils.toString(entity);

return result;

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

if (httpResponse != null) {

try {

httpResponse.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (null != httpClient) {

try {

httpClient.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return null;

}

}

 

以上是 java使用httpclient发送post、get、put、delete请求 的全部内容, 来源链接: utcz.com/z/390209.html

回到顶部