如何在 WireMock 中成功代理 HTTPS 端点?

2024-01-29

我正在编写一个内部使用 WireMock 的 HTTP 记录播放代理,并且在记录 HTTPS 目标时遇到问题。 HTTP 站点工作正常。

以下是我为未加密站点设置 WireMock 代理的方法:

java \
    -jar /var/proximate/wiremock-standalone-2.4.1.jar \
    --port 9000 \
    --proxy-all http://ilovephp.jondh.me.uk \
    --record-mappings \
    --root-dir /remote/experiment/record/http

然后我可以使用以下命令记录该网站上的任何内容:

wget -e use_proxy=yes -e http_proxy=proximate-proxy:9000 \
    http://ilovephp.jondh.me.uk/en/tutorial/make-your-own-blog

很快我就会得到一些自动创建的映射:

/ # ls -R /remote/experiment/record/http
/remote/experiment/record/http:
__files   mappings

/remote/experiment/record/http/__files:
body-tutorial-make-your-own-blog-tWrNm.txt

/remote/experiment/record/http/mappings:
mapping-tutorial-make-your-own-blog-tWrNm.json

这里的内容大致相同,但是是在 SSL 站点上。首先代理:

java \
    -jar /var/proximate/wiremock-standalone-2.4.1.jar \
    --port 9000 \
    --proxy-all https://www.rottentomatoes.com/ \
    --record-mappings \
    --root-dir /remote/experiment/record/https \
    --verbose

这是获取:

wget -e use_proxy=yes -e http_proxy=proximate-proxy:9000 \
    https://www.rottentomatoes.com/

WireMock 的结果是创建了内部缓存目录,但它们不包含任何内容:

/ # ls -R /remote/experiment/record/https
/remote/experiment/record/https:
__files   mappings

/remote/experiment/record/https/__files:

/remote/experiment/record/https/mappings:

我在 Docker 容器中的 Alpine 3.4 上使用 WM 2.4.1。我需要使用一些https-特定的命令行开关来让它工作?

Update

看到最近发布的版本,我暂时感到高兴2.5.0 https://github.com/tomakehurst/wiremock/releases/tag/2.5.0最近合并了https-bind-address-bug,这听起来非常相关。我尝试过这个版本,但不幸的是它没有什么区别。


这已部分解决 - 我的主要错误是 HTTPS 连接的代理地址是为 WireMock 和客户端单独设置的。我现在正在使用:

java \
    -jar /var/proximate/wiremock-standalone-2.4.1.jar \
    --port 9000 \
    --https-port 9050 \
    --proxy-all https://www.rottentomatoes.com/ \
    --record-mappings \
    --root-dir /remote/experiment/record/https \
    --verbose \
    --print-all-network-traffic

我已经添加--print-all-network-traffic这样我就可以看到是否有任何 HTTPS 流量正在访问代理(现在是)。

这是新的客户端命令,包含新的代理指令:

wget -e use_proxy=yes -e http_proxy=proximate-proxy:9000 \
     -e https_proxy=proximate-proxy:9050 \
     --verbose \
     --user-agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0" \
     https://www.rottentomatoes.com/

但是,现在实际上正在使用代理,看起来操作并未成功完成。我尝试过其他加密网站并收到相同的模糊错误:

Resolving proximate-proxy... 172.18.0.2
Connecting to proximate-proxy|172.18.0.2|:9050... connected.
Failed reading proxy response: No error information
Retrying.

--2017-01-26 09:20:18--  (try: 2)  https://www.rottentomatoes.com/
Connecting to proximate-proxy|172.18.0.2|:9050... connected.
Failed reading proxy response: No error information
Retrying.

--2017-01-26 09:20:20--  (try: 3)  https://www.rottentomatoes.com/
Connecting to proximate-proxy|172.18.0.2|:9050... connected.
Failed reading proxy response: No error information
Retrying.

^C

我已经更换了用户代理,以防基于标准“wget”字符串的第三方拒绝,但这似乎也没有影响。

我将就此提出一个新问题,以缩小这是 WireMock 还是 Wget 问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 WireMock 中成功代理 HTTPS 端点? 的相关文章

  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • 当分配给变量时,我可以以某种方式重用 Gremlin GraphTraversals 代码吗?

    我有看起来像这样的 GraphTraversals attrGroup GraphTraversal
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题
  • Microsoft Graph 身份验证 - 委派权限

    我可以使用 Microsoft Graph 访问资源无需用户即可访问 https developer microsoft com en us graph docs concepts auth v2 service 但是 此方法不允许我访问需
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 如何在 Maven 中显示消息

    如何在 Maven 中显示消息 在ant中 我们确实有 echo 来显示消息 但是在maven中 我该怎么做呢 您可以使用 antrun 插件
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • Springs 元素“beans”不能具有字符 [children],因为该类型的内容类型是仅元素

    我在 stackoverflow 中搜索了一些页面来解决这个问题 确实遵循了一些正确的答案 但不起作用 我是春天的新人 对不起 这是我的调度程序 servlet
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?

    我正在生成 Rest 端点 包括添加OpenAPI Swagger对生成的代码进行注释 虽然它对于基本类型运行得很好 但我在自定义类方面遇到了一些问题 现在我有很多自定义类的重复架构条目 使用 Schema 实现 MyClass class

随机推荐

  • asp.net 下拉列表和视图状态

    我有一个下拉列表 可以触发自动回发并触发 SelectedIndexChanged 更改事件 我已将 viewstate 设置为 true 但由于某种原因 所选值在回发之间不会保留 我已经使用了下拉列表数百次 但似乎无法弄清楚为什么会发生这
  • Angular2 - 如何将字符串枚举与 *ngIf 一起使用

    我该如何通过enum当我使用时到一个函数 ngIf在角度 我有以下代码 export enum RoleType User User Admin Admin 组件功能 public hasAccess role RoleType check
  • 负面清单索引? [复制]

    这个问题在这里已经有答案了 我试图理解下面的代码 node list n for i in xrange 1 numnodes 1 tmp session newobject n append tmp link n 0 n 1 具体来说 我
  • 使用 Java 终止进程

    我想知道如何 杀死 已经启动的进程 我知道 Process API 但我不确定 是否可以使用它来 杀死 已经运行的进程 例如 firefox exe 等 如果可以使用 Process API 您能指出我吗 正确的方向 如果没有 还有哪些其他
  • 通过查询字符串将对象列表传递给 MVC 控制器

    我遇到了一种情况 需要将对象列表传递给 MVC 控制器 但我不确定如何在查询字符串中格式化它 我想要这样做的原因是因为这不是一个 Web 应用程序 它是一个通过查询字符串接受数据并将其路由到执行工作的控制器的 Web 服务 因此 给定一个名
  • SQL Server - 复杂的动态数据透视列

    我有两个表 Controls 和 ControlChilds 父表结构 Create table Controls ProjectID Varchar 20 NOT NULL ControlID INT NOT NULL ControlCo
  • 如何将 __init__ 参数传递给使用 qmlRegisterType 注册的类?

    是否可以使用 qmlRegisterType 函数将 init 参数传递给注册到 QML 的 python 类 如果是这样 当在 QML 中实例化类时它们会被传递吗 我已使用 qmlRegisterType 注册了该类 但没有找到将另一个类
  • FormArray的使用和动态添加控件行

    我在尝试使用 Angular 2 和 Forms 做某事时遇到了麻烦 假设我有一个邀请列表 其中有两个字段 分别用于姓名和电子邮件 以及一个用于添加更多行的按钮 姓名 电子邮件 姓名 电子邮件 添加行 我有点知道您可以使用 FormArra
  • 如何获取

    我有一个FlowPanel 其高度是固定的 实际上是其父级高度的百分比 该高度是固定的 在此面板中 我添加了几个div元素 使用 CSS 我将其高度设置为其父级的 100 我想要做的是使用 javascript 将其宽度设置为等于其高度 我
  • 使用最新的 Android L 支持 v4 进行 Android 活动转换

    我正在为我的应用程序实现材料设计 我发现可以在此处进行活动之间的转换 http android developers blogspot com es 2014 10 implementing material design in your
  • Jquery 错误:需要对象

    这是我在 aspx 页面中的代码
  • android - 如何使文本视图滚动?

    实际上 我在文本视图中显示了一些数据 但它的一半数据超出了屏幕 所以我需要帮助来使文本视图滚动或任何其他可以向下滚动屏幕的东西 任何帮助 将不胜感激 将 TextView 放入 XML 中的 ScrollView 中 如下所示
  • Maven + Cucumber-jvm - 如何根据环境运行不同的功能子集

    我正在努力实现这一目标 我想配置一个 Maven 项目 以便它根据所选配置文件运行不同的 Cucumber 功能子集 dev pro 例如 我有几个功能文件来测试网络导航 使用标签来指定环境 PRO pro Feature Nav Pro
  • 如何使用 gdb“观察”C++ 动态数组?

    考虑以下示例 int size 10 kk new int size for int i 0 i lt size i kk i i delete kk 如何为整个阵列添加监视 我可以一一添加手表 kk 0 kk 1 但既然我知道数组的长度
  • kubectl exec 到多容器 pod 的容器中

    我在登录多容器 Pod 的一个容器时遇到问题 我从以下位置获取容器 IDkubectl describe pod
  • Symfony2:使用具有相同名称的自定义字段类型覆盖内置字段类型

    As per 本文 http symfony com doc current cookbook form create custom field type html在 Symfony 文档上 我创建了一个自定义字段类型 将其设置为servi
  • 视图框架在 viewWillAppear: 和 viewDidAppear: 之间变化

    我在我的应用程序中发现了一个奇怪的行为 其中连接IBOutlet在我的视图控制器中的调用之间有其连接的视图框架viewWillAppear and viewDidAppear 这是我的相关代码UIViewController子类 void
  • 如何使用PHP连接sql server

    我想使用PHP连接到sql server数据库 我安装了 xampp 1 7 0 php 5 2 和 SQLSRV20 我已将扩展添加到php ini我收到此错误 Warning mssql connect function mssql c
  • 如何在 vim 中使用 ctags 自动完成

    我尝试在vim中开发android项目 但是发现在ctags中查找一种方法有点无聊 有没有办法使用ctags在vim中显示自动完成列表 thanks 这是我的 ctags 版本如下 Exuberant Ctags 5 8 Copyright
  • 如何在 WireMock 中成功代理 HTTPS 端点?

    我正在编写一个内部使用 WireMock 的 HTTP 记录播放代理 并且在记录 HTTPS 目标时遇到问题 HTTP 站点工作正常 以下是我为未加密站点设置 WireMock 代理的方法 java jar var proximate wi