一、httpclient项目有两种使用方式。一种是commons项目,这一个就只更新到3.1版本了。现在挪到了HttpComponents子项目下了,这里重点讲解HttpComponents下面的httpclient的使用方式。

二、加入jar包

  <dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>

三、使用方式

1、GET方法

     //相对于commons-httpclient 3.1这里采用接口的方式来获取httpclient了
HttpClient httpClient = HttpClients.createDefault();
//声明请求方式
HttpGet httpGet = new HttpGet("http://www.baidu.com");
//获取相应数据,这里可以获取相应的数据
HttpResponse httpResponse = httpClient.execute(httpGet);
//拿到实体
HttpEntity httpEntity= httpResponse.getEntity();
//获取结果,这里可以正对相应的数据精细字符集的转码
String result = "";
if (httpEntity != null) {
result = EntityUtils.toString(httpEntity,"utf-8");
}
//关闭连接
httpGet.releaseConnection();

2、POST方法

     //需要传输的数据
Map<String,Object> map = new HashMap<String, Object>();
map.put("1", "1");
map.put("2", "2");
//谷歌的Gson
Gson gson = new Gson();
//相对于commons-httpclient 3.1这里采用接口的方式来获取httpclient了
HttpClient httpClient = HttpClients.createDefault();
//声明请求方式
HttpPost httpPost = new HttpPost("http://www.baidu.com");
//设置消息头
httpPost.setHeader("Content-Type","application/json;charset=utf-8");
httpPost.setHeader("Accept","application/json");
//设置发送数据(数据尽量为json),可以设置数据的发送时的字符集
httpPost.setEntity(new StringEntity(gson.toJson(map),"utf-8"));
//获取相应数据,这里可以获取相应的数据
HttpResponse httpResponse = httpClient.execute(httpPost);
//拿到实体
HttpEntity httpEntity= httpResponse.getEntity();
//获取结果,这里可以正对相应的数据精细字符集的转码
String result = "";
if (httpEntity != null) {
result = EntityUtils.toString(httpEntity,"utf-8");
}
//关闭连接
httpPost.releaseConnection();

3、PUT方式(和post的方式差不多)

     //需要传输的数据
Map<String,Object> map = new HashMap<String, Object>();
map.put("1", "1");
map.put("2", "2");
//谷歌的Gson
Gson gson = new Gson();
//相对于commons-httpclient 3.1这里采用接口的方式来获取httpclient了
HttpClient httpClient = HttpClients.createDefault();
//声明请求方式
HttpPut httpPut = new HttpPut("http://www.baidu.com");
//设置消息头
httpPut.setHeader("Content-Type","application/json;charset=utf-8");
httpPut.setHeader("Accept","application/json");
//设置发送数据(数据尽量为json),可以设置数据的发送时的字符集
httpPut.setEntity(new StringEntity(gson.toJson(map),"utf-8"));
//获取相应数据,这里可以获取相应的数据
HttpResponse httpResponse = httpClient.execute(httpPut);
//拿到实体
HttpEntity httpEntity= httpResponse.getEntity();
//获取结果,这里可以正对相应的数据精细字符集的转码
String result = "";
if (httpEntity != null) {
result = EntityUtils.toString(httpEntity,"utf-8");
}
//关闭连接
httpPut.releaseConnection();

4、DELETE方法(这种方式和get方式差不多,但是限定类型不一样)

     //相对于commons-httpclient 3.1这里采用接口的方式来获取httpclient了
HttpClient httpClient = HttpClients.createDefault();
//声明请求方式
HttpDelete httpDelete = new HttpDelete("http://www.baidu.com");
//设置消息头(这里可以根据自己的接口来设定消息头)
httpDelete.setHeader("Content-Type","application/json;charset=utf-8");
httpDelete.setHeader("Accept","application/json");
//获取相应数据,这里可以获取相应的数据
HttpResponse httpResponse = httpClient.execute(httpDelete);
//拿到实体
HttpEntity httpEntity= httpResponse.getEntity();
//获取结果,这里可以正对相应的数据精细字符集的转码
String result = "";
if (httpEntity != null) {
result = EntityUtils.toString(httpEntity,"utf-8");
}
//关闭连接
httpDelete.releaseConnection();

四、这基本上就是httpclient的使用方法了,当然在这个只是简单的例子,实际的还是要在具体的生产环境中自己封装使用。

httpclient的几种请求URL的方式的更多相关文章

  1. HttpClient的几种请求方式

    public static String doPostToken(String tokenUrl,String clientId,String clientSecret,String grantTyp ...

  2. 一种解决url的get请求参数传值乱码问题的方式

    做项目的时候发现url get请求传中文字符出现乱码问题,百度了一下,最后用一种比较容易理解的方式解决了.分享给大家! 经过百度,网友提到:url get方式提交的参数编码,只支持iso8859-1编 ...

  3. httpclient几种请求方式

    一.httpclient 模拟get请求,并获取cookie信息 public class MyCookiesForGet { private String url; //用来读取.propertie ...

  4. HttpwebClient的四种请求方式

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.      本文旨在发布代码,供自己参考,也供大家参考,谢谢. 正题: Ht ...

  5. Ajax中的get和post两种请求方式的异同

    Ajax中我们经常用到get和post请求.那么什么时候用get请求,什么时候用post方式请求呢? 在做回答前我们首先要了解get和post的区别.   1. get是把参数数据队列加到提交表单的A ...

  6. jQuery中的Ajax几种请求方式

    1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) : 请求的HTML页的URL地址. data (M ...

  7. 转:Ajax中的get和post两种请求方式的异同

    1. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML ...

  8. Ajax的get和post两种请求方式区别

    Ajax的get和post两种请求方式区别 (摘录):http://ip-10000.blog.sohu.com/114437748.html 解get和post的区别. 1. get是把参数数据队列 ...

  9. http的几种请求的方式(Get、Post、Put、Head、Delete、Options、Trace和Connect)

    http的这几种请求方式各有各的特点,适用于各自的环境.下面我就说说这些方式的各自特点: 1.Get:它的原理就是通过发送一个请求来取得服务器上的某一资源.获取到的资源是通过一组HTTP头和呈现数据来 ...

随机推荐

  1. 【转】IntelliJ IDEA的光芒会盖过Eclipse吗

    作为一个资深的Eclipse用户,我想对IntelliJ IDEA做一个更为严谨的审视.JetBrains的工作人员非常的友善,并为Podcastpedia.org和Codingpedia.org这两 ...

  2. ibatis.net 实现多数据库配置

    1.1  功能介绍 使用ibatis.net ORM框架时,有时候需要操作多个数据库,同时有时候也需要对连接数据库信息进行加密,本文通过将配置连接写到Web.config中, 这样就可以在Web.co ...

  3. Getting 'The AWS Access Key Id you provided does not exist in our records' error with Amazon MWS

    I upgraded from one version of Amazon MWS (marketplace web service) version https://mws.amazonservic ...

  4. (GoRails) Credential

    之前的博客:https://www.cnblogs.com/chentianwei/p/9167489.html Guide:  https://guides.rubyonrails.org/secu ...

  5. 手动编译JAVA类

    javac -encoding utf-8  -Djava.ext.dirs=D:\JDeveloper\jdevbin\BC4J\lib\;D:\JDeveloper\jdevbin\j2ee\ho ...

  6. 自定义jQuery的animate动画

    //擦除效果 jQuery.extend(jQuery.easing, { easeOutBack : function(x, t, b, c, d, s) { s = s || 1.3; retur ...

  7. nginx会话保持之sticky模块

    nginx会话保持之nginx-sticky-module模块 在使用负载均衡的时候会遇到会话保持的问题,常用的方法有:1.ip hash,根据客户端的IP,将请求分配到不同的服务器上:2.cooki ...

  8. Life Cycle(JSF+Facelets)

    一.JSF Life Cycle: 图1 图2 应用程序的生命周期是指应用程序的各个阶段,从开始到结束.所有应用程序的生命周期.在web应用程序生命周期中,执行常见任务,包括以下内容.■处理传入的请求 ...

  9. FIS 的思想和优点

    资源表 各种性能优化算法的加载框架 依赖声明有助于组件化 资源自动合并 链接 与webpack对比

  10. nginx配置文件的性能优化

    1.nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数.worker_processes 8; 2.为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或 ...