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)的更多相关文章
-
Java开发小技巧(五):HttpClient工具类
前言 大多数Java应用程序都会通过HTTP协议来调用接口访问各种网络资源,JDK也提供了相应的HTTP工具包,但是使用起来不够方便灵活,所以我们可以利用Apache的HttpClient来封装一个具 ...
-
基于HttpClient4.5.2实现的HttpClient工具类
1.maven依赖: <dependency> <groupId>org.apache.commons</groupId> <artifactId>co ...
-
转:轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)
搜了一下网络上别人封装的HttpClient,大部分特别简单,有一些看起来比较高级,但是用起来都不怎么好用.调用关系不清楚,结构有点混乱.所以也就萌生了自己封装HttpClient工具类的想法.要做就 ...
-
使用单例模式实现自己的HttpClient工具类
引子 在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient 来方便我们使用各种Http服务.你可以把HttpCli ...
-
Android开发实现HttpClient工具类
在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务.你可以把HttpClient想 ...
-
httpclient工具类,post请求发送json字符串参数,中文乱码处理
在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文 ...
-
通过Httpclient工具类,实现接口请求
package luckyweb.seagull.util; import org.apache.http.NameValuePair; import org.apache.http.client.e ...
-
轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
近期更新了一下HttpClientUtil工具类代码,主要是加入了一个參数HttpContext,这个是用来干嘛的呢?事实上是用来保存和传递Cookie所须要的. 由于我们有非常多时候都须要登录.然后 ...
-
HttpClient工具类v1.7
package com.cucpay.fundswap.util; import java.io.IOException; import java.net.SocketTimeoutException ...
随机推荐
-
使用Entity Framework通过code first方式创建数据库和数据表
开发环境 WIN10 Entity Framework6.0 MVC5.0 开发工具 VS2015 SqlServer2012 1.创建上下文Context继承DbContext,并创建其他的业 ...
-
inotify 心得
inotify 心得 一.inotify简介 inotify是Linux内核2.6.13 (June 18, 2005)版本新增的一个子系统(API),它提供了一种监控文件系统(基于inode的)事件 ...
-
【JVM】模板解释器--如何根据字节码生成汇编码?
1.背景 仅针对JVM的模板解释器: 如何根据opcode和寻址模式,将bytecode生成汇编码. 本文的示例中所使用的字节码和汇编码,请参见上篇博文:按值传递还是按引用? 2.寻址模式 本文不打算 ...
-
50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段
50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段 本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从j ...
-
FORM开发之说明性弹性域开发
1.注册使用弹性域的表,字段 注册表语法:ad_dd.register_table('所有者','表名','T自动扩展/S非自动扩展','下一区','*','已使用') AD_DD.REGISTER ...
-
ViewPager + TabLayout + Fragment + MediaPlayer的使用
效果图 在gradle里导包 implementation 'com.android.support:design:28.0.0' activity_main <?xml version=&q ...
-
linux | 网卡驱动
linux 1. 查看网卡信息 lspci | grep -i 'eth' 1a:00.0 Ethernet controller: Intel Corporation Ethernet Connec ...
-
原生JS获取url汇总
在WEB开发中,许多开发者都比较喜欢使用javascript来获取当前url网址,本文就此为大家总结一下比较常用获取URL的javascript实现代码 URL即统一资源定位符 (Uniform Re ...
-
sqlserver导出为EXcel--CSV格式
DataTable dt = Connect.BindTable(" SELECT 名称,地址,当前日期 FROM table GROUP BY 名称,地址,当前日期 order ...
-
hdu 3949 第k大异或组合
题意: 给你一些数,其中任选一些数(大于等于一个),那么他们有一个异或和. 求所有这样的异或和的第k小. 我们可以将每一位看成一维,然后就是给我们n个60维的向量,求它们线性组合后得到的向量空间中,第 ...