httpclient

案例分享

北慕城南 提交于 2020-11-03 07:23:33
案例分享 FunTester,一个就知道瞎掰呼的核弹派测试人员,量变引起的质变。 测试方案 如何对消息队列做性能测试 如何对修改密码接口进行压测 如何测试概率型业务接口 如何测试非固定型概率算法P=p(1+0.1*N) 性能测试中标记每个请求 如何对N个接口按比例压测 多种登录方式定量性能测试方案 压测中测量异步写入接口的延迟 手机号验证码登录性能测试 绑定手机号性能测试 BUG集锦 一个MySQL索引引发的血案 微软Zune闰年BUG分析 “双花”BUG的测试分享 iOS 11计算器1+2+3=24真的是bug么? 不要在遍历的时候删除 连开100年会员会怎样 异步查询转同步加redis业务实现的BUG分享 超大对象导致Full GC超高的BUG分享 爬虫实践 接口爬虫之网页表单数据提取 httpclient爬虫爬取汉字拼音等信息 httpclient爬虫爬取电影信息和下载地址实例 httpclient 多线程爬虫实例 groovy爬虫练习之——企业信息 httpclient 爬虫实例——爬取三级中学名 电子书网站爬虫实践 groovy爬虫实例——历史上的今天 爬取720万条城市历史天气数据 记一次失败的爬虫 爬虫实践--CBA历年比赛数据 本文分享自微信公众号 - FunTester(NuclearTester)。 如有侵权,请联系 support@oschina.cn 删除。

php获取客户端IP

情到浓时终转凉″ 提交于 2020-10-31 06:33:50
php 获取客户端IP 首先先阅读关于IP真实性安全的文章: 如何正確的取得使用者 IP? 「 任何從客戶端取得的資料都是不可信任的! 」 HTTP_CLIENT_IP 头是有的,但未成标准,不一定服务器都实现。 HTTP_CLIENT_IP 头都是可以伪造的,所以就会造成获取IP不是真实IP,但并不意味着它们一无是处,生产环境中很多服务器隐藏在负载均衡节点后面,一般负载均衡节点会把前端实际的IP地址通过HTTP_CLIENT_IP,通过HTTP_CLIENT_IP只能获取的负载均衡节点的IP地址。 HTTP_X_FORWARDED_FOR 是有标准定义,用来识别经过 HTTP代理 后的客户端IP地址,格式: clientip,proxy1,proxy2 。 http://zh.wikipedia.org/wiki/X-Forwarded-For **HTTP_***头都很容易伪造。 REMOTE_ADDR 是可靠的, 它是最后一个跟你的服务器握手的 IP ,可能是用户的代理服务器,也可能是自己的反向代理。 所以尽量记录相关信息进行判断: /** * todo:获取客户端ip * @return array */ public static function GetIp(): array { // 保存可靠IP为基准,其他IP保留备份 $arr = array('ip'=>$

PHP正确获取客户端IP地址

我的未来我决定 提交于 2020-10-31 06:00:28
现状 目前主流的函数方法: <?php function getIp() { if ($_SERVER["HTTP_CLIENT_IP"] && strcasecmp($_SERVER["HTTP_CLIENT_IP"], "unknown")) { $ip = $_SERVER["HTTP_CLIENT_IP"]; } else { if ($_SERVER["HTTP_X_FORWARDED_FOR"] && strcasecmp($_SERVER["HTTP_X_FORWARDED_FOR"], "unknown")) { $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else { if ($_SERVER["REMOTE_ADDR"] && strcasecmp($_SERVER["REMOTE_ADDR"], "unknown")) { $ip = $_SERVER["REMOTE_ADDR"]; } else { if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown") ) { $ip = $_SERVER['REMOTE_ADDR']; } else { $ip =

PHP 如何获取客户端ip地址

不想你离开。 提交于 2020-10-31 02:57:52
PHP 如何获取客户端ip地址 一、总结 一句话总结:主要是使用$_SERVER的 REMOTE_ADDR 和 HTTP_X_FORWARDED_FOR 两个属性,在用户使用不同代理的时候这两个属性可用于获取ip 使用$_SERVER的 REMOTE_ADDR 和 HTTP_X_FORWARDED_FOR 两个属性 public function ip() { // strcasecmp 比较两个字符,不区分大小写。返回0,>0,<0。 if( getenv('HTTP_CLIENT_IP') && strcasecmp( getenv('HTTP_CLIENT_IP'), 'unknown' )) { $ip = getenv('HTTP_CLIENT_IP' ); } elseif( getenv('HTTP_X_FORWARDED_FOR') && strcasecmp( getenv('HTTP_X_FORWARDED_FOR'), 'unknown' )) { $ip = getenv('HTTP_X_FORWARDED_FOR' ); } elseif( getenv('REMOTE_ADDR') && strcasecmp( getenv('REMOTE_ADDR'), 'unknown' )) { $ip = getenv('REMOTE_ADDR' ); }

异步请求CloseableHttpAsyncClient的使用

眉间皱痕 提交于 2020-10-30 09:03:31
1、前言 项目有个需求,需要把一些没用影响业务逻辑的http请求改成异步请求,httpclient在4.0后提供新的api CloseableHttpAsyncClient可以使用,记录下使用过程。 2、网络调用类型 (1)传统BIO(Blocking IO) 同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 (2)NIO(Not-Blocking IO) NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。 (3)AIO(NIO.2) 异步非阻塞式IO,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。 3、CloseableHttpAsyncClient CloseableHttpAsyncClient是apache在4.0后提供AIO操作的api,基本使用如下 1)pom.xml引用如下 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId>

【超详细】python+requests接口自动化框架,在线教学!

时光总嘲笑我的痴心妄想 提交于 2020-10-29 16:56:22
为什么要做接口自动化框架 1、业务与配置的分离 2、数据与程序的分离;数据的变更不影响程序 3、有日志功能,实现无人值守 4、自动发送测试报告 5、不懂编程的测试人员也可以进行测试 正常接口测试的流程是什么? 确定接口测试使用的工具----->配置需要的接口参数----->进行测试----->检查测试结果----->生成测试报告 测试的工具: python+requests 接口测试用例: excel 一、接口框架如下: 1、action包:用来存放关键字函数 2、config包:用来存放配置文件 3、TestData:用来存放测试数据,excel表 4、Log包:用来存放日志文件 5、utils包:用来存放公共的类 6、运行主程序interface_auto_test.py 7、Readme.txt:告诉团队组员使用改框架需要注意的地方 二、接口的数据规范设计---Case设计 一个sheet对应数据库里面一张表 APIsheet存放 编号;从1开始 接口的名称(APIName); 请求的url(RequestUrl); 请求的方法(RequestMethod); 传参的方式(paramsType):post/get请求方法不一样 用例说明(APITestCase) 是否执行(Active)部分接口已测通,下次不用测试,直接把这里设置成N,跳过此接口 post与get的区别

当IntelliJ IDEA2020.1遇上JDK14:所有美好环环相扣

99封情书 提交于 2020-10-29 16:47:18
原文地址:blog.csdn.net/weixin_43413658/article/details/105839472 松哥原创的四套视频教程已经全部杀青,感兴趣的小伙伴戳这里--> Spring Boot+Vue+微人事视频教程 IntelliJ IDEA新功能: 界面支持中文 但这里要注意的是不是原生支持中文,而是要安装jetbrains的官方插件, 如下图 导航栏改进 上面的导航栏可以直接跳转到各个方法,这个以前要实现的话要点左侧的Structure ,现在就方便多了 支持Javadoc的渲染 以前Javadoc看起来很费劲,要手动转换html格式,现在看起来就很方便了,还可以更改字体大小 以前 现在 新增主题和字体 主题: 字体: Lightedit模式 你可以把idea当成编辑器 Zen模式 进入了蝉模式,世界瞬间变得清爽了很多,让你专注于写代码 在IDEA里安装JDK 支持Java 14新特性 instanceof用法增强 record新语法支持 命令行终端支持分栏 更加智能的检查和重构 支持就地更改方法签名 智能分析日期字符串格式 更加智能的检查和重构 支持数据流分析辅助,可以直接预测下面的运行结果 调试时,支持对象字段的置顶 以文件形式存储运行配置 更加先进的版本控制 优化了代码提交的窗口 支持搜索,刷新本地及远端的代码分支 Maven和Gradle导入更新

Invalid mime type "*/;q=0.8": does not contain subtype after &apos;/&apos;

不羁岁月 提交于 2020-10-25 12:59:26
今天在使用 apache http client 调用 其他服务器的接口的时候, get 请求报错了 org.springframework.web.HttpMediaTypeNotAcceptableException: Could not parse 'Accept' header [text/html,application/xhtml+xml,application/xml;q=0.9,*/;q=0.8]: Invalid mime type "*/;q=0.8": does not contain subtype after '/' org.springframework.util.InvalidMimeTypeException: Invalid mime type "*/;q=0.8": does not contain subtype after '/' 说是不支持 header 的 accept 类型。 因为这个 服务器的接口默认只支持返回 json 格式的。所以报错了,修改 http client 的请求header 的 acept 即可 代码如下: /** * GET方式提交数据 * * @param url 待请求的URL * @param params 要提交的数据 * @param enc 编码 * @param resEnc 响应内容的编码 *

Spring Cloud Zuul:API网关服务

£可爱£侵袭症+ 提交于 2020-10-25 12:33:24
Spring Cloud Zuul:API网关服务 SpringBoot实战电商项目mall(20k+star)地址: github.com/macrozheng/… 摘要 Spring Cloud Zuul 是Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的API网关使用,支持动态路由与过滤功能,本文将对其用法进行详细介绍。 Zuul简介 API网关为微服务架构中的服务提供了统一的访问入口,客户端通过API网关访问相关服务。API网关的定义类似于设计模式中的门面模式,它相当于整个微服务架构中的门面,所有客户端的访问都通过它来进行路由及过滤。它实现了请求路由、负载均衡、校验过滤、服务容错、服务聚合等功能。 创建一个zuul-proxy模块 这里我们创建一个zuul-proxy模块来演示zuul的常用功能。 在pom.xml中添加相关依赖 < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-netflix-eureka-client </ artifactId > </ dependency > < dependency > < groupId > org.springframework