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. ...
随机推荐
- 一个例子教你理解java回调机制
网上很多例子都写的很难理解,笔者刚开始都已经弄晕菜了. 这个例子,应该是再简单,再简洁不过的了,例子目的是测试某个方法的执行时间.这里就写三个java类,一个接口,一个实现,还有一个用于测试时间的类. ...
- Javascript设计模式理论与实战:工厂方法模式
本文从简单工厂模式的缺点说起,引入工厂方法模式,介绍的工厂方法模式的基本知识,实现要点和应用场景,最后举例进行说明工厂方法模式的应用.在之前的<Javascript设计模式理论与实战:简单工厂模 ...
- .net core 使用 redis
.net core 使用 redis 个人感觉.net core 对于微软技术而言有很重要的意义 ,所以最近已有时间就想看一看关于.net core 的文章. 今天我就来写一写如何在.net core ...
- Privacy Policy of ColorfulBroswer
Personal information collection this app does not collect your data and does not share your infomat ...
- ASP.NET基于Aspose.Words插入Word水印以及多个水印
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Da ...
- css3 animation动画使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- zTree第四章,异步加载,后端
后端 ------------------------------------------------------------------------------------------------- ...
- Android中线程和线程池
我们知道线程是CPU调度的最小单位.在Android中主线程是不能够做耗时操作的,子线程是不能够更新UI的.在Android中,除了Thread外,扮演线程的角色有很多,如AsyncTask,Inte ...
- JMeter PerfMon Metrics Collector性能监控插件
官方文档地址https://jmeter-plugins.org/wiki/PerfMon/ JMeter是一款压力测试工具,我们也可以用它来监控服务器资源使用情况. JMeter正常自带可以通过To ...
- Java初学者的学习路线建议
java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...