引入的包为:
& lt; !——https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient——比; & lt; dependency> & lt; groupId> org.apache.httpcomponents & lt; artifactId> httpclient & lt; version> 4.5.8 & lt;/dependency>
实现的工具类为:
进口com.alibaba.fastjson.JSON; 进口org.apache.http.NameValuePair; 进口org.apache.http.client.entity.UrlEncodedFormEntity; 进口org.apache.http.client.methods.CloseableHttpResponse; 进口org.apache.http.client.methods.HttpGet; 进口org.apache.http.client.methods.HttpPost; 进口org.apache.http.impl.client.CloseableHttpClient; 进口org.apache.http.impl.client.HttpClients; 进口org.apache.http.message.BasicNameValuePair; 进口org.slf4j.Logger; 进口org.slf4j.LoggerFactory; 进口java.io.IOException; 进口java.util.ArrayList; 进口java.util.HashMap; 进口并不知道; 进口java.util.Map; 公开课HttpClientHelper { 私有静态日志记录器=LoggerFactory.getLogger (HttpClientHelper.class); 私人HttpClientHelper () { }/* * *发起帖子请求 * * @param url网址 * @param paramMap参数的地图格式 */公共静态孔隙sendPost(字符串url, Map<字符串,String>paramMap) { logger.info(“开始发起帖子请求,请求地址为{},参数为{}”,url, JSON.toJSON (paramMap)); CloseableHttpResponse响应=零; 试(CloseableHttpClient httpClient=HttpClients.createDefault ()) { 字符串编码=皍tf - 8”;//创建帖子请求对象 HttpPost HttpPost=new HttpPost (url);//装填请求参数 List,列表=new ArrayList<的在(); (Map.Entry<字符串,String>条目:paramMap.entrySet ()) { 列表。添加(新BasicNameValuePair (entry.getKey (), entry.getValue ())); }//设置参数到请求对象中 httpPost。setEntity(新UrlEncodedFormEntity(列表、编码)); httpPost。setHeader(“内容类型”,“应用程序/x-www-form-urlencoded”); httpPost。setHeader(“用户代理”、“Mozilla/4.0(兼容;MSIE 5.0;Windows NT;DigExt) "); 响应=httpClient.execute (httpPost); }捕捉(IOException e) { 记录器。错误(“后请求发出失败,请求的地址为{},参数为{},错误信息为{}”,url, JSON.toJSON (paramMap) e.getMessage (), e); 最后}{ 尝试{ 如果(响应!=null) { response.close (); } }捕捉(IOException e) { 记录器。错误(“后请求响应关闭异常,错误信息为{}”,e.getMessage (), e); } } }/* * *发起得到请求 * * @param urlParam url请求,包含参数 */公共静态孔隙sendGet(字符串urlParam) { logger.info(“开始发起得到请求,请求地址为{}”,urlParam); HttpGet HttpGet=new HttpGet (urlParam); CloseableHttpResponse响应=零; 试(CloseableHttpClient httpClient=HttpClients.createDefault ()) { 响应=httpClient.execute (httpGet); .getStatusCode int状态=response.getStatusLine () (); 记录器。错误(“请求发出成功,请求的地址为{},返回状态为{}”,urlParam,状态); }捕捉(IOException e) { 记录器。错误(“请求发出失败,请求的地址为{},错误信息为{}”,urlParam, e.getMessage (), e); 最后}{ 尝试{ 如果(响应!=null) { response.close (); } }捕捉(IOException e) { 记录器。错误(“请求响应关闭异常,错误信息为{}”,e.getMessage (), e); } } } 公共静态void main (String [] args) { 字符串url=" https://jiashubing.cn/tencenttest ";//需要传入的参数 String> Map<字符串;地图=new HashMap<在(); 地图。把(“代码”,“js”); 地图。把(“天”、“0”); 地图。把(“城”、“北京”); 地图。把(“展开”,“1”); 地图。把(“字符集”、“utf - 8”); sendPost (url,地图); 字符串urlParam=" https://jiashubing.cn/talk/document& # 63;文件标识=1234霁贾树丙”; sendGet (urlParam); } }
如果帖子请求想要发送Json格式的数据,只需要修改成这样:
字符串json=JSON.toJSONString (paramMap);
httpPost.setEntity (requestEntity); 引用>
StringEntity requestEntity=new StringEntity (json,“utf - 8”);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Java httpcomponents发送得到职位请求代码实例