gpt4 book ai didi

linux - 在 Linux 上模拟 HTTP POST 调用中的延迟

转载 作者:IT王子 更新时间:2023-10-29 00:34:46 25 4
gpt4 key购买 nike

用例

我正在开发企业级支付应用程序(用 JAVA 编写)。我正在寻找模拟对银行进行的 HTTP POST 调用的延迟。这将使我能够模拟可能发生的不同延迟/不可用场景。

代码

以下代码向银行发送请求:

try {
// Set the location of the Bank Of America payment gateway
URL url = new URL(getParameterGatewayUrl());

// Open the connection
urlConnection = url.openConnection();

// Set the connection timeout
urlConnection.setConnectTimeout(getTimeoutSeconds() * 1000);

// Set the DoOutput flag to true because we intend
// to use the URL connection for output
urlConnection.setDoOutput(true);

// Send the transaction via HTTPS POST
OutputStream outputStream = urlConnection.getOutputStream();
outputStream.write(postVars.getBytes());
outputStream.close();
} catch (TimeoutException exception){

}

try {
//Set the read timeout
urlConnection.setReadTimeout(getTimeoutSeconds() * 1000);

// Get the response from Bank Of America
InputStream inputStream = urlConnection.getInputStream();
while ((inputStreamCharacter = inputStream.read()) != -1)
responseText.append((char) inputStreamCharacter);

inputStream.close();
LOG.debug("Bank Of America responseText: " + responseText);
} catch (SocketTimeoutException exception){

}

这段代码运行在异步支付任务中。

场景

这是发生了什么:

  1. 我们连接到银行的支付网关
  2. 我们向银行发送付款请求。
  3. 我们等待银行回复我们的请求。
  4. 我们收到响应并对其进行解析并检查是否成功。

现在,我们想模拟请求发送到银行后的延迟,即在我们收到银行的响应之前。因此在第二个 try/catch block 中引发了 SocketTimeoutException 异常。

问题

我需要处理的应用程序实例托管在运行 14.04.1-Ubuntu 的服务器虚拟机上。我用过Fiddlerintroduce latency在我们过去的 Windows 托管应用程序上。但棘手的是,Fiddler 是一个基于 UI 的程序,我无法在 Linux shell 上使用 over。此外,我们没有得到银行的太多帮助。否则,如果这一切都在服务器端而不是在客户端进行模拟,那就容易多了。

问题

我已经用谷歌搜索了,但没能找到解决方案。有没有人尝试过这些方面的东西?如果是这样,我们该怎么做?欢迎提出任何建议。

最佳答案

我已经找到了测试这个的解决方法。我从 this answer 得到了帮助.同时httpbin是一个了不起的项目,它缺少延迟 POST 请求响应的能力。因此,我 fork 了他们的存储库,并自己添加了所需的端点。 fork任何需要它的人都可以使用。

现在,只需将网关 URL 更改为基于带有 /post/delay/ 的 httpbin 的 URL,结果将生成延迟的 POST 请求响应。

关于linux - 在 Linux 上模拟 HTTP POST 调用中的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30432728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com