2019独角兽企业重金招聘Python工程师标准>>>

httpclient的版本是4.3

第一种方式

package http;import org.apache.http.HttpEntity;
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.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;import java.io.IOException;
import java.util.ArrayList;
import java.util.List;public class HttpClient2 {public static void main(String args[]) throws IOException {List<NameValuePair> formparams = new ArrayList<NameValuePair>();formparams.add(new BasicNameValuePair("account", ""));formparams.add(new BasicNameValuePair("password", ""));HttpEntity reqEntity = new UrlEncodedFormEntity(formparams, "utf-8");RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(5000).setConnectionRequestTimeout(5000).build();HttpClient client = new DefaultHttpClient();HttpPost post = new HttpPost("http://cnivi.com.cn/login");post.setEntity(reqEntity);post.setConfig(requestConfig);HttpResponse response = client.execute(post);if (response.getStatusLine().getStatusCode() == 200) {HttpEntity resEntity = response.getEntity();String message = EntityUtils.toString(resEntity, "utf-8");System.out.println(message);} else {System.out.println("请求失败");}}
}

第二种方式

这种方式是用了一个http的连接池,同时使用httpbuilder构造合适的http方法。

package http;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.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.io.IOException;
import java.util.*;public class HttpClientUtils {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 = "cnivi.com.cn";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 getRequestMethod(Map<String, String> map, String url, String method) {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;if ("post".equals(method)) {reqMethod = RequestBuilder.post().setUri(url).addParameters(params.toArray(new BasicNameValuePair[params.size()])).setConfig(requestConfig).build();} else if ("get".equals(method)) {reqMethod = RequestBuilder.get().setUri(url).addParameters(params.toArray(new BasicNameValuePair[params.size()])).setConfig(requestConfig).build();}return reqMethod;}public static void main(String args[]) throws IOException {Map<String, String> map = new HashMap<String, String>();map.put("account", "");map.put("password", "");HttpClient client = getConnection();HttpUriRequest post = getRequestMethod(map, "http://cnivi.com.cn/login", "post");HttpResponse response = client.execute(post);if (response.getStatusLine().getStatusCode() == 200) {HttpEntity entity = response.getEntity();String message = EntityUtils.toString(entity, "utf-8");System.out.println(message);} else {System.out.println("请求失败");}}
}

=============END=============

转载于:https://my.oschina.net/xinxingegeya/blog/282683

HttpComponents之httpclient基本使用方法相关推荐

  1. HttpComponents和HttpClient基本用法

    HttpClient是什么? HTTP 协议是 Internet 上使用得最多.最重要的协议之一,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源. 虽然在 JDK 的 jav ...

  2. 【HttpClient】httpclient之post 方法(参数为Map类型)

    1.概述 httpclient之post 方法(参数为Map类型) package httpclient;import java.io.BufferedReader; import java.io.I ...

  3. Android学习笔记---HttpClient入门,使用方法,及简介

    HttpClient入门 发华 金, 软件工程师,IBM CSDL, EMC 金发华是一名工作在 IBM CSDL 的软件工程师.他喜欢钻研各种新的技术,在 Java 网络开发和 Web 开发方面颇有 ...

  4. HttpClient的使用方法

    使用httpClient发送请求.接收响应很简单.一般需要以下几个步骤. 第一:创建HttpClient对象: 第二:创建请求方法的实例,并指定请求URL.如果要发送GET请求,创建HttpGet对象 ...

  5. httpClient访问网络,httpclient.execute(httpGet)方法阻塞主线程问题

    最近在维护项目过程中遇到网络请求的问题,使用口令登录网络请求正常,而使用指纹登录时会在httpclient的execute方法报错网络阻塞主线程. 下面就来说一下我的解决方案: /**** @para ...

  6. Angular HTTPClient的使用方法

    这个例子演示了如何使用Angular的HttpClientModule. 在app.module.ts里导入HttpClientModule: import { HttpClientModule } ...

  7. Apache httpclient的execute方法调试

    因为工作需要,想研究一下execute执行的逻辑. 在这一行调用execute: response = getHttpClient().execute(get); getHttpClient的实现: ...

  8. httpclient post方法【亲测可用】

    很多代码都是根据需求来搞代码的.很早之前的就是给app写的接口,主要项目采用的是基础RMI的项目,服务层不能暴露给外网访问,所以需要给App写转发接口,让App调用其他平台的(内网)接口,重定向很简单 ...

  9. httpclient依赖_.NetCore 3.1高性能微服务架构:封装调用外部服务的接口方法HttpClient客户端思路分析...

    护士节快乐 众所周知,微服务架构是由一众微服务组成,项目中调用其他微服务接口更是常见的操作.为了便于调用外部接口,我们的常用思路一般都是封装一个外部接口的客户端,使用时候直接调用相应的方法.webse ...

最新文章

  1. pandas dataframe缺失值(np.nan)处理:识别缺失情况、删除、0值填补、均值填补、中位数填补、加缺失标签、插值填充详解及实例
  2. 目前我见过的.net开源的或者免费的比较好的资源
  3. Window下mysql的安装
  4. Spotlight on oracle 使用
  5. leetcode 563. 二叉树的坡度(Java版)
  6. 容器学习 之 容器的网络类型(十二)
  7. C语言_结构体与共用体
  8. Pandas 文本数据方法 contains()
  9. 安装使用ubuntu和opensuse
  10. 【论文写作】毕业论文写作必备技巧:修改文章的诀窍
  11. java 检测 类型_[Java教程]javascript类型与类型检测
  12. 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_10、常用json框架介绍和Jackson返回结果处理...
  13. postman测试JSON参数接口
  14. FPGA零基础学习:UART协议驱动设计
  15. 「字节码插桩」统计方法耗时(第一篇:初出茅庐)- 第311篇
  16. 调查:人工智能技术的应用现状
  17. 深度学习#tensorflow进阶
  18. 南开大学计算机学院李越,李越 简历 - 名人简历
  19. C#验证歌得巴赫猜想
  20. BetaFlight模块设计之三十:Cli模块分析

热门文章

  1. 微软亚马逊联手发布深度学习库Gluon,适合所有段位的炼丹师
  2. 第三章 Lambda 表达式
  3. Swift实践:使用CoreData存储多种数据类的通讯录
  4. python之HTTP处理模块urllib和urllib2
  5. 小米手机如何关闭悬浮球
  6. 注释为基础的SpringMVC
  7. 数据库:mongodb与关系型数据库相比的优缺点zz (转)
  8. JQuery合并table单元格--有限制(table格式需要注意)
  9. ASP.NET服务器控件查询
  10. 昨天看了华星巨幕《海神号》