HttpClient执行post请求
public class Httpclient_post {
private ResourceBundle bundle;
private String url;
private BasicCookieStore store;
//方法执行前先读取resource文件夹下的application文件中的url参数
@BeforeMethod
public void get_url(){
bundle =ResourceBundle.getBundle("application", Locale.CHINA);
url = bundle.getString("test.url");
}
//获取cookie
@Test
public void testGetCookies_read() throws IOException {
String result;
String uri = bundle.getString("getCookies.url");
String testUri = this.url+uri;
this.store = new BasicCookieStore();
//获取响应
HttpGet get = new HttpGet(testUri);
CloseableHttpClient client = HttpClients.custom().setDefaultCookieStore(store).build();
HttpResponse response = client.execute(get);
result = EntityUtils.toString(response.getEntity(),"utf-8");
System.out.println(result);
//获取cookie
List<Cookie> cookies = store.getCookies();
for (Cookie cookie :cookies
) {
String name = cookie.getName();
String value = cookie.getValue();
System.out.println("cookie: key= "+name +",name="+value);
}
}
//获取cookie并发送请求
//依赖读取cookie的方法,cookie存放在store中
@Test(dependsOnMethods ={"testGetCookies_read"} )
public void getPost_cookie() throws IOException {
//获取请求url
String ur = url+bundle.getString("test.get.with.cookies.post");
System.out.println(ur);
HttpPost post = new HttpPost(ur);
CloseableHttpClient client = HttpClients.custom().setDefaultCookieStore(store).build();
//设置请求头信息
post.setHeader("content-type","application/json");
//设置jsong格式的请求参数
JSONObject param = new JSONObject();
param.put("name","hu");
param.put("age","18");
//将请求参数添加到方法中
StringEntity entity = new StringEntity(param.toString());
post.setEntity(entity);
//存贮响应结果
String result;
CloseableHttpResponse response = client.execute(post);
//获取响应结果
result = EntityUtils.toString(response.getEntity());
System.out.println(result);
//处理结果,判断结果是否符合预期
//将响应的结果字符串转换成json
JSONObject restjson = new JSONObject(result);
String success = (String) restjson.get("gg");
String status = (String) restjson.get("status");
Assert.assertEquals("success",success);
Assert.assertEquals("1",status);
}
}
HttpClient执行post请求的更多相关文章
- HttpClientUtil [使用apache httpclient模拟http请求]
基于httpclient-4.5.2 模拟http请求 以get/post方式发送json请求,并获取服务器返回的json -------------------------------------- ...
- HttpClient模拟http请求
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且 ...
- 【JAVA】通过HttpClient发送HTTP请求的方法
HttpClient介绍 HttpClient 不是一个浏览器.它是一个客户端的 HTTP 通信实现库.HttpClient的目标是发 送和接收HTTP 报文.HttpClient不会去缓存内容,执行 ...
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- 一步步教你为网站开发Android客户端---HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView
本文面向Android初级开发者,有一定的Java和Android知识即可. 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新List ...
- 使用HttpClient发送HTTPS请求以及配置Tomcat支持SSL
这里使用的是HttpComponents-Client-4.1.2 package com.jadyer.util; import java.io.File; import java.io.FileI ...
- (一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是 ...
- SpringMVC,MyBatis项目中兼容Oracle和MySql的解决方案及其项目环境搭建配置、web项目中的单元测试写法、HttpClient调用post请求等案例
要搭建的项目的项目结构如下(使用的框架为:Spring.SpingMVC.MyBatis): 2.pom.xml中的配置如下(注意,本工程分为几个小的子工程,另外两个工程最终是jar包): 其中 ...
随机推荐
- Thread对象 既传入了Runnable对象又重写了run()方法
Thread本身是一个类,其run(): 正常情况下, target(即传入的new Runnable()对象)不为空,就是执行target里面的run方法 但是,重新run()方法之后,就不会在执行 ...
- 注解+AOP实现redis遍历缓存
1.注解 package com.yun.smart.annotation; import java.lang.annotation.ElementType; import java.lang.ann ...
- windows下命令
shutdown -s -t 0 关机 shutdown -r -t 0 重启 mstsc 远程桌面 notepad 记事本 regedit 注册表 calc 计算器 start applicatio ...
- Outlook配置163邮箱
一.在163邮箱设置处设置POP3/SMTP/IMAP 二.开启客户端授权码 三.打开Outlook,选择手动设置 选择POP/IMAP 密码是上文中的授权码 点击其它设置,勾选以下选项 点击完成即可
- 安卓源码默认开启USB调试
找到\frameworks\base\services\usb\java\com\android\server\usb\UsbDeviceManager.java下的 Settings.Global. ...
- 【redis前传】redis整数集为什么不能降级
前言 整数集合相信有的同学没有听说过,因为redis对外提供的只有封装的五大对象!而我们本系列主旨是学习redis内部结构.内部结构是redis五大结构重要支撑! 前面我们分别从redis内部结构分析 ...
- vue2.x移动端ui框架选型
前言 最近公司准备做移动端spa项目,需要选一个ui框架.优先考虑谷歌Material Design设计风格.针对市面上的框架进行了一次调研,简单总结如下. 选型原则:1. 优先考虑md风格. 2. ...
- python + mysql 实现创建数据表
import pymysql"""1.连接本地数据库2.建立游标3.创建表4.插入表数据.查询表数据.更新表数据.删除表数据"""def c ...
- mybatis-1-hellomybatis
一.先创建一个mybatis的数据表 USE `mybatis`; CREATE TABLE tbl_employee( id INT(11) PRIMARY KEY AUTO_INCREMENT, ...
- Python3.9安装PySpider步骤及问题解决
先写一些前言吧,自己感觉python已经有一定的基础了,但是在安装这个过程居然用了一下午,感觉有些收货,特地写下来与大家分享一下. PySpider是一个强大的网络爬虫系统,GitHub地址:http ...