Httpclient 工具类(get,put)

时间:2022-03-04 06:10:59
package com.googosoft.until;

import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
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.HttpPut;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSONArray;
import com.googosoft.model.HttpClientResult; /**
* @author songyan
* @version 2020年1月13日 下午1:57:15
* @desc HttpClient发送http请求工具类
*/
public class HttpClientUtil { protected static final Logger logger = LoggerFactory.getLogger(HttpClientUtil.class); /**
* 发送无参get请求
* @param url
* @return
* @throws ClientProtocolException
* @throws IOException
*/
public static HttpClientResult sendGetRequest(String url){
HttpClientResult result = new HttpClientResult();
CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet(url);
CloseableHttpResponse response;
try {
response = client.execute(get);
HttpEntity entity = response.getEntity();
String content = EntityUtils.toString(entity);
result.setContent(content);
result.setCode(response.getStatusLine().getStatusCode());
} catch (ClientProtocolException e) {
logger.error("协议异常,堆栈信息如下", e);
} catch (IOException e) {
logger.error("网络异常,堆栈信息如下", e);
} finally {
try {
client.close();
} catch (Exception e) {
e.printStackTrace();
client = null;
}
}
return result;
} /**
* 发送无参put请求
* @param url
* @return
*/
public static HttpClientResult sendPutReq(String url) {
HttpClientResult result = new HttpClientResult();
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpPut put = new HttpPut(url);
try {
HttpResponse httpResponse = httpClient.execute(put);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = httpResponse.getEntity();
String content = EntityUtils.toString(entity);
result.setContent(content);
}else{
result.setCode(httpResponse.getStatusLine().getStatusCode());
}
} catch (ClientProtocolException e) {
logger.error("协议异常,堆栈信息如下", e);
} catch (IOException e) {
logger.error("网络异常,堆栈信息如下", e);
} finally {
try {
httpClient.close();
} catch (Exception e) {
e.printStackTrace();
httpClient = null;
}
}
return result;
} public static JSONArray StrToJsonArray(String content) { return null;
} }

Httpclient 工具类(get,put)的更多相关文章

  1. Java开发小技巧(五):HttpClient工具类

    前言 大多数Java应用程序都会通过HTTP协议来调用接口访问各种网络资源,JDK也提供了相应的HTTP工具包,但是使用起来不够方便灵活,所以我们可以利用Apache的HttpClient来封装一个具 ...

  2. 基于HttpClient4.5.2实现的HttpClient工具类

    1.maven依赖: <dependency> <groupId>org.apache.commons</groupId> <artifactId>co ...

  3. 转&colon;轻松把玩HttpClient之封装HttpClient工具类&lpar;一&rpar;(现有网上分享中的最强大的工具类)

    搜了一下网络上别人封装的HttpClient,大部分特别简单,有一些看起来比较高级,但是用起来都不怎么好用.调用关系不清楚,结构有点混乱.所以也就萌生了自己封装HttpClient工具类的想法.要做就 ...

  4. 使用单例模式实现自己的HttpClient工具类

    引子 在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient 来方便我们使用各种Http服务.你可以把HttpCli ...

  5. Android开发实现HttpClient工具类

    在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务.你可以把HttpClient想 ...

  6. httpclient工具类,post请求发送json字符串参数&comma;中文乱码处理

    在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文 ...

  7. 通过Httpclient工具类,实现接口请求

    package luckyweb.seagull.util; import org.apache.http.NameValuePair; import org.apache.http.client.e ...

  8. 轻松把玩HttpClient之封装HttpClient工具类&lpar;五&rpar;,携带Cookie的请求

    近期更新了一下HttpClientUtil工具类代码,主要是加入了一个參数HttpContext,这个是用来干嘛的呢?事实上是用来保存和传递Cookie所须要的. 由于我们有非常多时候都须要登录.然后 ...

  9. HttpClient工具类v1&period;7

    package com.cucpay.fundswap.util; import java.io.IOException; import java.net.SocketTimeoutException ...

随机推荐

  1. 使用Entity Framework通过code first方式创建数据库和数据表

    开发环境 WIN10 Entity Framework6.0  MVC5.0  开发工具 VS2015  SqlServer2012 1.创建上下文Context继承DbContext,并创建其他的业 ...

  2. inotify 心得

    inotify 心得 一.inotify简介 inotify是Linux内核2.6.13 (June 18, 2005)版本新增的一个子系统(API),它提供了一种监控文件系统(基于inode的)事件 ...

  3. 【JVM】模板解释器--如何根据字节码生成汇编码?

    1.背景 仅针对JVM的模板解释器: 如何根据opcode和寻址模式,将bytecode生成汇编码. 本文的示例中所使用的字节码和汇编码,请参见上篇博文:按值传递还是按引用? 2.寻址模式 本文不打算 ...

  4. 50个必备的实用jQuery代码段&plus; 可以直接拿来用的15个jQuery代码片段

    50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段 本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从j ...

  5. FORM开发之说明性弹性域开发

    1.注册使用弹性域的表,字段 注册表语法:ad_dd.register_table('所有者','表名','T自动扩展/S非自动扩展','下一区','*','已使用') AD_DD.REGISTER ...

  6. ViewPager &plus; TabLayout &plus; Fragment &plus; MediaPlayer的使用

    效果图 在gradle里导包  implementation 'com.android.support:design:28.0.0' activity_main <?xml version=&q ...

  7. linux &vert; 网卡驱动

    linux 1. 查看网卡信息 lspci | grep -i 'eth' 1a:00.0 Ethernet controller: Intel Corporation Ethernet Connec ...

  8. 原生JS获取url汇总

    在WEB开发中,许多开发者都比较喜欢使用javascript来获取当前url网址,本文就此为大家总结一下比较常用获取URL的javascript实现代码 URL即统一资源定位符 (Uniform Re ...

  9. sqlserver导出为EXcel--CSV格式

    DataTable dt = Connect.BindTable(" SELECT  名称,地址,当前日期  FROM  table   GROUP BY 名称,地址,当前日期 order ...

  10. hdu 3949 第k大异或组合

    题意: 给你一些数,其中任选一些数(大于等于一个),那么他们有一个异或和. 求所有这样的异或和的第k小. 我们可以将每一位看成一维,然后就是给我们n个60维的向量,求它们线性组合后得到的向量空间中,第 ...