当前位置: 首页 > news >正文

【四:httpclient的使用】

目录

  • 1、Demo案例
  • 2、请求一个带cookies的get请求
  • 3、请求一个带cookies的post请求
    • 案例一,案例二的properties的配置

image.png

1、Demo案例

public class MyHttpClient {@Testpublic void test1() throws IOException {//用来存放我们的结果String result;HttpGet get = new HttpGet("http://www.baidu.com");//这个是用来执行get方法的HttpClient client = new DefaultHttpClient();HttpResponse response = client.execute(get);result = EntityUtils.toString(response.getEntity(),"utf-8");System.out.println(result);}
}

2、请求一个带cookies的get请求

需要结合mock服务


public class MyCookiesForGet {private String url;private ResourceBundle bundle;//用来存储cookies信息的变量private CookieStore store;@BeforeTestpublic void beforeTest(){bundle = ResourceBundle.getBundle("application", Locale.CHINA);url = bundle.getString("test.url");}@Testpublic void testGetCookies() throws IOException {String result;//       从配置文件中 拼接测试的urlString uri = bundle.getString("getCookies.uri");String testUrl = this.url+uri;//        测试逻辑代码书写HttpGet get = new HttpGet(testUrl);DefaultHttpClient client = new DefaultHttpClient();HttpResponse response = client.execute(get);result = EntityUtils.toString(response.getEntity(),"utf-8");System.out.println(result);//获取cookies信息this.store = client.getCookieStore();List<Cookie> cookieList = store.getCookies();for (Cookie cookie : cookieList){String name = cookie.getName();String value = cookie.getValue();System.out.println("cookie name = " + name+ ";  cookie value = " + value);}}@Test(dependsOnMethods = {"testGetCookies"})public void testGetWithCookies() throws IOException {String uri = bundle.getString("test.get.with.cookies");String testUrl = this.url+uri;HttpGet get = new HttpGet(testUrl);DefaultHttpClient client = new DefaultHttpClient();//设置cookies信息client.setCookieStore(this.store);HttpResponse response = client.execute(get);//获取响应的状态码int statusCode = response.getStatusLine().getStatusCode();System.out.println("statusCode = " + statusCode);if(statusCode == 200){String result = EntityUtils.toString(response.getEntity(),"utf-8");System.out.println(result);}}
}

3、请求一个带cookies的post请求

需要结合mock服务

public class MyCookiesForPost {private String url;  //定义成全局变量private ResourceBundle bundle;//设置成全局变量//用来存储cookies信息的变量private CookieStore store; //定义成全局变量@BeforeTestpublic void beforeTest(){bundle = ResourceBundle.getBundle("application", Locale.CHINA);url = bundle.getString("test.url");}@Testpublic void testGetCookies() throws IOException {String result;
//       从配置文件中 拼接测试的urlString uri = bundle.getString("getCookies.uri");String testUrl = this.url+uri;//        测试逻辑代码书写HttpGet get = new HttpGet(testUrl);DefaultHttpClient client = new DefaultHttpClient();HttpResponse response = client.execute(get);result = EntityUtils.toString(response.getEntity(),"utf-8");System.out.println(result);//获取cookies信息this.store = client.getCookieStore();List<Cookie> cookieList = store.getCookies();for (Cookie cookie : cookieList){String name = cookie.getName();String value = cookie.getValue();System.out.println("cookie name = " + name+ ";  cookie value = " + value);}}@Test(dependsOnMethods = {"testGetCookies"})public void testPostMethod() throws IOException {String uri = bundle.getString("test.post.with.cookies");//拼接最终的测试地址String testUrl = this.url + uri;//声明一个Client对象,用来进行方法的执行DefaultHttpClient client = new DefaultHttpClient();//声明一个方法,这个方法就是post方法HttpPost post = new HttpPost(testUrl);//添加参数JSONObject param = new JSONObject();param.put("name","huhansan");param.put("age","18");//设置请求头信息 设置headerpost.setHeader("content-type","application/json");//将参数信息添加到方法中StringEntity entity = new StringEntity(param.toString(),"utf-8");post.setEntity(entity);//声明一个对象来进行响应结果的存储String result;//设置cookies信息client.setCookieStore(this.store);//执行post方法HttpResponse response = client.execute(post);//获取响应结果result = EntityUtils.toString(response.getEntity(),"utf-8");System.out.println(result);//处理结果,就是判断返回结果是否符合预期//将返回的响应结果字符串转化成为json对象JSONObject resultJson = new JSONObject(result);//获取到结果值String success = (String) resultJson.get("huhansan");String status = (String) resultJson.get("status");//具体的判断返回结果的值Assert.assertEquals("success",success);Assert.assertEquals("1",status);}}

案例一,案例二的properties的配置

test.url=http://localhost:8899
dev.url=http://localhost:8899getCookies.uri=/getCookies
test.get.with.cookies=/get/with/cookies
test.post.with.cookies=/post/with/cookies
login=/login

相关文章:

【四:httpclient的使用】

目录 1、Demo案例2、请求一个带cookies的get请求3、请求一个带cookies的post请求案例一&#xff0c;案例二的properties的配置 1、Demo案例 public class MyHttpClient {Testpublic void test1() throws IOException {//用来存放我们的结果String result;HttpGet get new Htt…...

在innodb引擎中,count(*)、count(1)、count(主键)、count(字段)哪个性能最高?

在InnoDB引擎中&#xff0c;这四种计数值的效率高低取决于具体的数据库和数据表结构&#xff0c;无法一概而论哪个性能最高。不过&#xff0c;一般情况下可以按照以下顺序进行选择&#xff1a; count()&#xff1a;统计所有行的数量。由于InnoDB引擎的行锁是锁住整行&#xff…...

华为OD 跳格子2(200分)【java】B卷

华为OD统一考试A卷B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目&#xff0c;A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载&#xff0c;请点击此链接进入&#xff1a…...

javascript/python 笔记: folium feature group自动切换

1 python部分 python部分只能是静态的结果 1.1 导入库 import folium import math 1.2 数据 cell_lst表示基站位置&#xff0c;location_lst表示 用户实际位置&#xff08;均为伪数据&#xff09; cell_lst[[1.341505, 103.682498],[1.342751, 103.679604],[1.341505, 10…...

Python中的元组

Python 元组 Python 的元组与列表类似&#xff0c;不同之处在于元组的元素不能修改。以下是关于Python元组的一些基本信息&#xff1a; 元组的使用&#xff1a;元组是一个不可变的序列类型&#xff0c;使用小括号 () 来定义。元组没有增加元素append、修改元素、删除元素pop的…...

在云计算环境中,如何利用 AI 改进云计算系统和数据库系统性能

文章目录 前言一、关于唐明洁教授二、AI for System2.1 面向分布式作业的人工智能2.1.1 现阶段企业云计算系统环境所遇到的普遍痛点2.1.2 云计算系统环境所遇到的普遍痛点的解决方案&#xff08;一&#xff09;Google Autopilot Eurosys 2021方案&#xff08;Pod级别&#xff0…...

OpenP2P实现内网穿透远程办公

OpenP2P是一个开源、免费、轻量级的P2P共享网络。你的设备将组成一个私有P2P网络&#xff0c;里面的设备可以直接访问其它成员&#xff0c;或者通过其它成员转发数据间接访问。如果私有网络无法完成通信&#xff0c;将会到公有P2P网络寻找共享节点协助通信。 相比BT网络用来共享…...

黑白棋(Othello, ACM/ICPC World Finals 1992, UVa220)rust解法

你的任务是模拟黑白棋游戏的进程。黑白棋的规则为&#xff1a;黑白双方轮流放棋子&#xff0c;每次必须让新放的棋子“夹住”至少一枚对方棋子&#xff0c;然后把所有被新放棋子“夹住”的对方棋子替换成己方棋子。一段连续&#xff08;横、竖或者斜向&#xff09;的同色棋子被…...

MySQL中如何进行表的优化和压缩?

在MySQL中&#xff0c;可以通过以下方式进行表的优化和压缩&#xff1a; 使用合适的存储引擎&#xff08;Storage Engine&#xff09;&#xff1a;MySQL提供了多种存储引擎&#xff0c;如InnoDB、MyISAM等。不同的存储引擎在表的优化和压缩方面有不同的特点。例如&#xff0c;I…...

【Java】Jsoup格式化html问题(文本空格折叠等)解决方法

问题说明 Jsoup格式化html文本时&#xff0c;如&#xff1a; Document document Jsoup.parse(html);这里在对html进行格式化的时候会将如下内容&#xff1a; <p> aaa </p>解析成如下格式&#xff1a; <p> aaa </p>即空格折叠问题&#xff…...

Ansible定义各类变量,引用变量方式介绍及注册变量和vars_prompt的用法示例

目录 一.Ansible定义变量 1.用途 2.定义规则 3.变量优先级 二.命令行定义变量 三.定义主机和主机组变量 1.主机变量 &#xff08;1&#xff09;内置主机变量 &#xff08;2&#xff09;简单示例 2.主机组变量 四.定义playbook变量 1.通过vars表示定义变量&#xff…...

各类证件的版面信息收集

香港身份证的版面分析&#xff1a; 证件页面&#xff1a; 相关的版面信息&#xff1a; 该页面包含香港身份证的信息&#xff0c;可以用于版面分析&#xff1b; 信息来源&#xff1a;香港不同证件说明大汇总|回乡证|居民身份证|护照|永居_手机网易网 台湾通行证号码&#xf…...

vueday01——ref响应式

特性&#xff1a;持续监控某个响应式变量的属性名变化&#xff0c;可以使用shallowRef来取消这一特性&#xff0c;只监控对象整体的变化 ref测试代码&#xff1a; <template><div :id"idValue" ref"myDiv">打印obj{{ obj }}</div><…...

SpringBoot集成Redisson操作Redis

目录 一、前言二、基础集成配置&#xff08;redis单节点&#xff09;2.1、POM2.2、添加配置文件2.3、添加启动类2.4、添加测试类测试redisson操作redis 一、前言 Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格&#xff0c;Redisson相比较与Jedis和Lettuce来说最…...

整数反转

题目&#xff1a; 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例 …...

【ELK使用指南 2】常用的 Logstash filter 插件详解(附应用实例)

Logstash filter 一、logstash filter过滤插件的常用模块简介二、grok 正则捕获插件2.1 grok插件的作用2.2 内置正则表达式2.3 自定义正则表达式 三、mutate 数据修改插件3.1 mutate插件的作用3.2 常用的配置选项3.3 mutate插件应用实例 四、multiline 多行合并插件4.1 multili…...

(转)STR 内核做了什么

参考这篇文章&#xff1a; Linux电源管理(6)_Generic PM之Suspend功能 写的很清晰...

fastapi项目结构以及多进程部署

环境&#xff1a; python3.10.x Linux/centos 背景&#xff1a; 最近在用FastApi开发数据统计&#xff0c;并将统计数据返回给前端展示的数据系统。 数据库&#xff1a; mongodb&#xff0c; python包为mongoEngine 项目结构 main.py api middleware router-- __init__.py-- …...

【LeetCode】 412. Fizz Buzz

题目链接 文章目录 Python3 【O(n) O(1)】C.emplace_back() 【C 11 之后】 Python3 【O(n) O(1)】 初始版本 class Solution:def fizzBuzz(self, n: int) -> List[str]:ans []for i in range(1, n1):if i % 5 0 and i % 3 0:ans.append("FizzBuzz")elif i % …...

vector+算法sort与list+sort的效率比较,容易写错的地方原因探析

我写的代码&#xff1a; #include <iostream> using namespace std; #include <vector> #include <list> #include <algorithm> int main() {const int N 10000000;vector<int> v;list<int> l;for (int i 0; i < N; i){v.push_back(…...

英雄联盟Akari助手全攻略:解锁5大核心功能提升游戏体验

英雄联盟Akari助手全攻略&#xff1a;解锁5大核心功能提升游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 英雄联盟Akari助手是一款专…...

Netty-learning-example数据持久化实战:JPA+MySQL与MyBatis+MongoDB对比

Netty-learning-example数据持久化实战&#xff1a;JPAMySQL与MyBatisMongoDB对比 【免费下载链接】netty-learning-example :egg: Netty实践学习案例&#xff0c;见微知著&#xff01;带着你的心&#xff0c;跟着教程。我相信你行欧。 项目地址: https://gitcode.com/gh_mir…...

Python 官方网站(python.org)上 Python 3.13.0 版本的 Windows 下载选项说明

Python 官方网站&#xff08;python.org&#xff09;上 Python 3.13.0 版本的 Windows 下载选项说明。以下是各选项的简要解释&#xff0c;帮助你选择合适的安装包&#xff1a; ✅ Windows installer (64-bit)&#xff1a;标准 .exe 安装程序&#xff0c;适用于大多数现代 64 位…...

到底要不要用AI写代码?别争了

其实我一直觉得&#xff0c;现在大家讨论 AI 写代码这件事&#xff0c;有点熟悉。因为以前我们也是这么过来的。刚开始写代码那会儿&#xff0c; 不会就打开 百度&#xff0c; 一行一行找答案&#xff0c;复制、试错、再改。一个分号错了能找半天&#xff0c; 中英文标点混了直…...

mysql如何管理大规模mysql实例的权限_使用统一的鉴权系统

MySQL大实例权限管理不能靠手工GRANT&#xff0c;因人工同步易导致漏配、错配、主从不一致等问题&#xff1b;必须通过ProxySQL等代理层实现统一鉴权&#xff0c;将权限策略与MySQL执行分离。MySQL 大实例权限管理为什么不能靠手工 GRANT单个 MySQL 实例用 GRANT 配权限没问题&…...

StructBERT文本相似度效果展示:实测中文句子匹配,准确率高达98%

StructBERT文本相似度效果展示&#xff1a;实测中文句子匹配&#xff0c;准确率高达98% 1. 引言&#xff1a;当AI能“读懂”你的句子 想象一下&#xff0c;你是一位电商客服主管&#xff0c;每天要处理上千条用户咨询。用户问“我的快递怎么还没到”&#xff0c;而你的知识库…...

蓄电池与超级电容混合储能并网matlab/simulink仿真模型 (1)混合储能采用低通滤波...

蓄电池与超级电容混合储能并网matlab/simulink仿真模型 &#xff08;1&#xff09;混合储能采用低通滤波器进行功率分配&#xff0c;可有效抑制功率波动&#xff0c;并对超级电容的soc进行能量管理&#xff0c;soc较高时多放电&#xff0c;较低时少放电&#xff0c;soc较低时状…...

告别繁琐:用快马生成openclaw自动化安装脚本,效率提升300%

最近在折腾openclaw这个工具时&#xff0c;发现手动安装过程实在太磨人了。每次都要反复查文档、处理各种依赖报错&#xff0c;光是环境配置就能耗掉大半天。于是琢磨着能不能搞个自动化方案&#xff0c;把安装流程标准化。试了几个方法后&#xff0c;终于在InsCode(快马)平台上…...

OpenClaw定时任务:Qwen3.5-9B每日自动抓取行业资讯

OpenClaw定时任务&#xff1a;Qwen3.5-9B每日自动抓取行业资讯 1. 为什么需要自动化资讯服务&#xff1f; 作为一个技术从业者&#xff0c;每天早晨打开电脑的第一件事就是查看行业动态。但手动浏览十几个网站、筛选重复内容、整理关键信息的过程实在太耗费时间。更糟糕的是&…...

AI 写作 + 去 AI 味:自媒体人高效涨粉密码

AI 写作 去 AI 味&#xff0c;自媒体人高效涨粉的新组合拳副标题&#xff0c;内容洪流时代&#xff0c;创作者如何同时兼顾效率、风格与平台合规&#xff1f;凌晨两点&#xff0c;北京东四环的一间合租公寓里&#xff0c;一位运营着 3 个帐号的图文博主&#xff0c;一边看着后…...