http请求数据封装
package com.wdm.utils; import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class HttpClientUtils { private static Logger LOGGER = LoggerFactory.getLogger(HttpClientUtils.class); private static int CONNECT_TIME_OUT = 1000; private static int READ_TIME_OUT = 1000; private static byte[] BUFFER = new byte[1024]; public static final String DEFAULT_CHARSET = "UTF-8"; public static String get(String url) {
return get(url, null, DEFAULT_CHARSET);
} public static String get(String url, String charset) {
return get(url, null, charset);
} public static String get(String url, Map<String, String> header, String charset) {
return get(url, header, charset, CONNECT_TIME_OUT, READ_TIME_OUT);
} public static String get(String url, Map<String, String> header, String charset,
int connectTimeout, int readTimeout) {
String result = "";
try {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.setUseCaches(false);
connection.setConnectTimeout(connectTimeout);
connection.setReadTimeout(readTimeout); if (header != null) {
for (Map.Entry<String, String> entry : header.entrySet()) {
connection.setRequestProperty(entry.getKey(), entry.getValue());
}
} ByteArrayOutputStream out = new ByteArrayOutputStream();
int responseCode = connection.getResponseCode();
if (responseCode < HttpURLConnection.HTTP_BAD_REQUEST) {
InputStream is = connection.getInputStream();
int readCount;
while ((readCount = is.read(BUFFER)) > 0) {
out.write(BUFFER, 0, readCount);
}
is.close();
} else {
LOGGER.warn("{} http response code is {}", url, responseCode);
}
connection.disconnect();
result = out.toString();
} catch (IOException e) {
LOGGER.error("{}", e.getMessage(), e);
}
return result;
} public static String post(String url, Map<String, String> params) {
return post(url, params, DEFAULT_CHARSET);
} public static String post(String url, Map<String, String> params, String charset) {
return post(url, params, null, charset);
} public static String post(String url, Map<String, String> params, Map<String, String> header, String charset) {
return post(url, params, header, charset, CONNECT_TIME_OUT, READ_TIME_OUT);
} public static String post(String url, Map<String, String> params, Map<String, String> header,
String charset, int connectTimeout, int readTimeout) {
String result = "";
try {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setConnectTimeout(connectTimeout);
connection.setReadTimeout(readTimeout); if (header != null) {
for (Map.Entry<String, String> entry : header.entrySet()) {
connection.setRequestProperty(entry.getKey(), entry.getValue());
}
} StringBuilder builder = new StringBuilder();
if (params != null) {
for (Map.Entry<String, String> entry : params.entrySet()) {
builder.append(entry.getKey());
builder.append("=");
builder.append(entry.getValue());
builder.append("&");
}
} OutputStream out = connection.getOutputStream();
out.write(builder.toString().getBytes(charset));
out.flush(); ByteArrayOutputStream bout = new ByteArrayOutputStream();
if (connection.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
InputStream is = connection.getInputStream();
int readCount;
while ((readCount = is.read(BUFFER)) > 0) {
bout.write(BUFFER, 0, readCount);
}
is.close();
}
connection.disconnect();
result = bout.toString();
} catch (IOException e) {
LOGGER.error("{}", e.getMessage(), e);
}
return result;
}
}
http请求数据封装的更多相关文章
- java框架之Struts2(2)-访问Servlet API及请求数据封装
准备 为后面测试示例编写代码及配置如下: package com.zze.bean; import java.util.Date; public class User { private String ...
- Struts2 请求数据的自动封装 及 自定义转换器类
请求数据自动封装: 实现原理:使用了参数拦截器.struts-default.xml中 <interceptor name="params" class="com. ...
- Struts2第四篇【请求数据自动封装、Action得到域对象】
前言 前三篇的Struts博文基本把Struts的配置信息讲解完了-..本博文主要讲解Struts对数据的处理 一般地,我们使用Servlet的时候都是分为几个步骤的: 得到web层的数据.封装数据 ...
- Java Web请求和响应机制
1.请求响应流程图 =================== 服务器处理请求的流程: 服务器每次收到请求时,都会为这个请求开辟一个新的线程. 服务器会把客户端的请求数据封装到request对象中,req ...
- body-parser Node.js(Express) HTTP请求体解析中间件
body-parser Node.js(Express) HTTP请求体解析中间件 2016年06月08日 781 声明 在HTTP请求中,POST.PUT和PATCH三种请求方法中包 ...
- vue中Axios请求豆瓣API数据并展示到Swipe中
vue中Axios请求豆瓣API数据并展示到Swipe中 1.首先是安装Axios: 安装方法cnpm install axios --save 等待npm安装完毕: 2.在main.js中引入axi ...
- JavaWeb请求-响应学习笔记
先来看一个流程图: 服务器处理请求的流程: (1)服务器每次收到请求时,都会为这个请求开辟一个新的线程. (2)服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载 ...
- java请求POST发送json格式请求
public static String upload(String url){ try { HttpClient httpclient = new DefaultHttpClient(); Http ...
- 深入 Struts2 的配置 - 处理多个请求-处理请求结果-模型驱动-异常机制
转:http://www.java3z.com/cwbwebhome/article/article2/2938.html?id=1631 本部分主要介绍struts.xml的常用配置. 1.1. ...
随机推荐
- kubernetes 滚动更新发布及回滚
基本命令 记录历史 --record kubectl apply -f **** --record 查看当前状态 kubectl rollout status deployment/demo -w ...
- Cenots 7 Configure static IP
For example: # cd /etc/sysconfig/ifcfg-enp3s0 # cat ifcfg-enp3s0 TYPE=EthernetBOOTPROTO=staticIPADDR ...
- bootstrap-treeview中文API 以及后台JSON数据处理
bootstrap-treeview 简要教程 bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件.该jQuery插件基于Twitter Bo ...
- JS——EasyuiCombobox三级联动
有许多刚接触Easyui中Combobox控件的朋友可能都会遇到的问题:如何将Combobox做成三级联动? 现分享一个三级联动的案例给大家参考参考,经测试能通过.注意Combobox绑定的数据是Js ...
- 【01】Kubernets:捋一捋概念性东西
写在前面的话 docker 先告一段,现在开始进入 Kubernets(K8S) 的学习阶段,在学习过程中,可结合之前学的 docker swarm 比对着理解. 啥是 K8S 先来看一下两个 log ...
- FFMPEG 的学习
https://blog.csdn.net/leixiaohua1020/article/details/15811977/
- 操作mysql的指令
1,通过ip,端口,用户名,密码登陆数据 命令格式为:mysql -h ip -u root -p -P 3306例如:mysql -h 127.0.0.1 -u root -p -P 3306 2, ...
- [Bootstrap-Table] 中的事件用例
[Bootstrap-Table] 中的事件 -------------------------------------------------- <div class="alert ...
- django基础2
一. 使用原生sql,了解即可 使用原生sql的目的:解决一些复杂的sql不能用ORM方式写出的问题 有三种方式如下 1. extra: 结果集修改器,一种提供额外查询参数的机制 2. raw:执行原 ...
- vs2010和opencv2.4.9配置
1.下载安装opencv2.4.9 直接到官网上下载opencv,我下载的是opencv2.4.9版本,然后进行安装,opencv的安装其实就是解压,我解压的路径是D:\opencv249.解压完成后 ...