模拟Linux上HTTP POST调用的延迟
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了模拟Linux上HTTP POST调用的延迟,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2156字,纯文字阅读大概需要4分钟。
内容图文
用例
我正在研究企业级支付应用程序(用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){
}
这段代码在异步付款任务中运行.
脚本
这是发生的事情:
>我们连接到银行的支付网关
>我们向银行发送付款申请.
>我们等待银行向我们发送回复我们的请求.
>我们收到回复并解析并检查成功.
现在,我们希望在请求发送到银行之后,即在我们收到银行的回复之前模拟延迟.这样在第二个try / catch块中引发了一个SocketTimeoutException异常.
问题
我需要处理的应用程序实例托管在运行14.04.1-Ubuntu的服务器VM上.我过去在Windows托管的应用程序上使用过Fiddler到introduce latency.但棘手的是,Fiddler是一个基于UI的程序,我无法在Linux shell上使用它.
此外,我们没有从银行得到太多帮助.否则,如果在服务器端而不是在客户端模拟这一切,那将会容易得多.
题
我用Google搜索并且无法为此找到解决方案.有没有人尝试过这些方法?如果是这样我们怎么做呢?欢迎大家提出意见.
解决方法:
我已经能够找到一种解决方法来测试它.我从this answer那里得到了帮助.虽然httpbin是一个了不起的项目,但它缺少延迟POST请求响应的能力.因此,我分叉了他们的存储库,并自己添加了所需的端点. fork适用于任何需要它的人.
现在,可以简单地将网关URL更改为基于带有/ post / delay /的httpbin的URL,结果将生成延迟的POST请求响应.
内容总结
以上是互联网集市为您收集整理的模拟Linux上HTTP POST调用的延迟全部内容,希望文章能够帮你解决模拟Linux上HTTP POST调用的延迟所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。