当前位置: 首页 > 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(…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

32单片机——基本定时器

STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...