热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用Httpclient通过post方式来实现http请求

Http协议的重要性这里不多介绍,基于上一篇介绍Http请求的GET和POST方式,这篇继续用Httpclient通过post方式来实现Http请求。先简单介绍一下Httpclient。Httpcli

Http协议的重要性这里不多介绍,基于上一篇介绍Http请求的GET和POST方式,这篇继续用Httpclient通过post方式来实现Http请求。先简单介绍一下Httpclient。Httpclient相比传统JDK自带的URL Connection增加了易用性和灵活性,它支持Http协议,提供了功能丰富的工具包,不仅让客户端发送Http请求变得容易,而且也提高了开发人员的开发效率。

下面重点介绍一下使用方法,首先,pom文件



org.apache.httpcomponents
httpclient
4.3.6



commons-logging
commons-logging
1.2


net.sf.json-lib
json-lib
2.4
jdk15



commons-lang
commons-lang
2.5


commons-beanutils
commons-beanutils
1.9.2


commons-collections
commons-collections
3.2.1
具体代码如下:

public class HttpclientDemo {

public List getDemoList(String demoName, String demoStatus){
List resultList = new ArrayList();
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse httpRespOnse= null;
//URL
String url = "http://192.168.0.1/httpclientDemo/service/getDemoList.do";
//封装请求参数
List params = Lists.newArrayList();
params.add(new BasicNameValuePair("demoName", demoName));
params.add(new BasicNameValuePair("demoStatus", demoStatus));
try{
//转换键值对
String str = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8));
//创建请求--get
HttpGet httpGet = new HttpGet(url+"?"+str);
httpRespOnse= httpClient.execute(httpGet);
//判断状态码
if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
//解析结果
String result = EntityUtils.toString(httpResponse.getEntity());
JSONArray jsOnArray= JSONArray.fromObject(result);
resultList = JSONArray.toList(jsonArray, new DemoTypeEntity(), new JsonConfig());
}
//释放连接
httpResponse.close();
}catch(Exception e){
e.printStackTrace();
}
return resultList;
}
}
具体的调用过程如下:

1.创建CloseableHttpClient对象
2.设置请求参数
3.创建请求方法的实例,如果需要发送GET请求则创建HttpGet对象,如果需要发送POST请求则创建HttpPost对象,我们这里创建的是HttpGet对象
4.指定URL
5.设置头信息
6.调用CloseableHttpClient对象的execute方法,返回一个CloseableHttpResponse对象
解析结果时需要注意,通过调用CloseableHttpClient对象的execute方法,返回一个CloseableHttpResponse对象,返回的对象调用getEntity方法可获取HttpEntity对象,该对象包含了服务器的响应内容


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
author-avatar
手机用户2502859707
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有