HttpComponents之httpclient

HttpComponents源码目录:http://www.boyunjian.com/javasrc/org.apache.httpcomponents/httpclient/4.3.4/_/

package  com.bbkj.utils;

import com.alibaba.fastjson.JSON;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.methods.RequestBuilder;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
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.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.util.*;

public class HttpUtils{

    private static PoolingHttpClientConnectionManager connectionManager = null;
    private static HttpClientBuilder httpBulder = null;
    private static RequestConfig requestConfig = null;

    private static int MAXCONNECTION = 10;

    private static int DEFAULTMAXCONNECTION = 5;

    private static String IP = "abc.com";
    private static int PORT = 80;

    static {
        //设置http的状态参数
        requestConfig = RequestConfig.custom()
                .setSocketTimeout(5000)
                .setConnectTimeout(5000)
                .setConnectionRequestTimeout(5000)
                .build();

        HttpHost target = new HttpHost(IP, PORT);
        connectionManager = new PoolingHttpClientConnectionManager();
        connectionManager.setMaxTotal(MAXCONNECTION);
        connectionManager.setDefaultMaxPerRoute(DEFAULTMAXCONNECTION);
        connectionManager.setMaxPerRoute(new HttpRoute(target), 20);
        httpBulder = HttpClients.custom();
        httpBulder.setConnectionManager(connectionManager);
    }

    public static CloseableHttpClient getConnection() {
        CloseableHttpClient httpClient = httpBulder.build();
        httpClient = httpBulder.build();
        return httpClient;
    }

    public static HttpUriRequest getRequestPost(Map<String, Object> map, String url) {
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        Set<Map.Entry<String, Object>> entrySet = map.entrySet();
        HttpUriRequest reqMethod = null;
        StringEntity stringEntity = new StringEntity(JSON.toJSONString(map), ContentType.APPLICATION_JSON);
        reqMethod = RequestBuilder.post().setUri(url)
                    .setEntity(stringEntity)
                    .setConfig(requestConfig).build();
        return reqMethod;
    }

    public static HttpUriRequest getRequestGet(Map<String, String> map, String url) {
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        for (Map.Entry<String, String> e : entrySet) {
            String name = e.getKey();
            String value = e.getValue();
            NameValuePair pair =  new BasicNameValuePair(name, value);
            params.add(pair);
        }
        HttpUriRequest reqMethod = null;
        reqMethod = RequestBuilder.get().setUri(url)
                    .addParameters(params.toArray(new BasicNameValuePair[params.size()]))
                    .setConfig(requestConfig).build();
        return reqMethod;
    }

    public static void main(String args[]) throws Exception {
        Map<String, Object> map = new HashMap<String, Object>();
//        map.put("startindex", "1");
//        map.put("size", "2");

        map.put("sn","1");
        map.put("index",1);
        map.put("heart_rate",1);
        map.put("resp_rate",1);
        map.put("leave_Bed",true);
        map.put("leave_bed_time",1);
        map.put("timestamp",1);
        map.put("bedNo","1");

        /***
         *  String sn;                 //设备编号
         Integer index;               //序号
         Integer heart_rate;          //心率
         Integer resp_rate;           //呼吸/分钟
         Boolean leave_Bed;           //false:未离床,true:离床
         Integer leave_bed_time;      //离床时间(分钟)
         Long timestamp;
         String bedNo;
         */

        HttpClient client = getConnection();
        HttpUriRequest post = getRequestPost(map, "http://abc.com/bed/submit/data");
        HttpResponse response = client.execute(post);
        System.out.println(response.getStatusLine().getStatusCode() );
        if (response.getStatusLine().getStatusCode() == 200) {
            HttpEntity entity = response.getEntity();
            String message = EntityUtils.toString(entity, "utf-8");
            System.out.println(message);
        } else {
            System.out.println("请求失败");
        }
    }
}

时间: 2025-01-02 14:38:31

HttpComponents之httpclient的相关文章

apache.http.client.HttpClient

前言 HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活.HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和

阿帕奇 Http 组件(Apache HttpComponents)- Apache 翻译过来好像都不认识了吧

Apache HttpComponents 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 标题也就没啥可翻的了,就是 Apache 提供的免费开源的 Http 组件库.Apache 冷不丁翻译

HttpClient学习整理(一)

Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性.因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入. org.apache.commons.httpclient.HttpClient与org

httpclient下载网页源码---java基础爬虫

有关httpclient: HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅使客户端发送Http请求变得容易,而且也方便开发人员测试接口(基于Http协议的),提高了开发的效率,也方便提高代码的健壮性.因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入. org.apache.commons.httpclient.HttpClient与org.apache.http.client.H

RoboSpice:android异步网络库简单用法

RoboSpice是一个使你建立异步的长时间的运行任务异常轻松的一个网络库,在网络请求,缓存支持,和提供开箱即用的rest请求方面尤为强大 特性如下 支持 SDK版本8以上的版本 异步执行网络请求(后台服务) 支持开箱即用的rest(使用了 Spring Android or Google Http Client or Retrofit).) 你的查询使用POJOs 作为参数,你会获得POJOs的请求结果 可以以 Jackson or Jackson2 or Gson, or Xml,等格式缓存

MANIFEST.MF文件全面解析

(一)简介 当我们用Jar命令打完包后,会在根目录下面创建META-INF目录,该目录下面会有一些对该Jar包信息的描述,其中肯定会有一个MANIFEST.MF文件,该文件包含了该Jar包的版本.创建人和类搜索路径等信息,当然如果是可执行Jar包,会包含Main-Class属性,表明Main方法入口.下面是httpclient.jar中的MANIFEST.MF内容: Manifest-Version: 1.0 Implementation-Title: HttpComponents Apache

将jar包添加到本地maven仓库中

在使用maven依赖添加jar包时,有时会遇到下载不成功的问题,这时需要将jar手动添加到本地的maven仓库中. 准备工作 配置好maven的环境变量 已经下载好的jar包 具体过程 win + R,输入cmd,进入命令窗口 输入命令:mvn install:install-file -Dfile="D:\BrowserDownload\httpclient-4.5.7.jar" -DgroupId=org.apache.httpcomponents -DartifactId=htt

org.apache.httpcomponents httpclient 发起HTTP JSON请求

1. pom.xml <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version> </dependency> 2. HttpClient.java package com.midea.clean.util; import java.io

HttpComponents 也就是以前的httpclient项目

HttpComponents 也就是以前的httpclient项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端/服务器编程工具包,并且它支持 HTTP 协议最新的版本和建议.不过现在的 HttpComponents 包含多个子项目,有: HttpComponents Core HttpComponents Client HttpComponents AsyncClient Commons HttpClient 以下列出的是 HttpClient 提供的主要的功能,要知道更